正则表达式替换除数字和小数点以外的所有内容

gui*_*nty 99 javascript regex

我有一个文本字段,只需要保留文本或小数.这是我正在使用的代码,用于替换除数字和小数点之外的所有内容.问题是,我无法弄清楚能够识别其他一切的正则表达式

document.getElementById(target).value = newVal.replace(/\D[^\.]/g, "");
Run Code Online (Sandbox Code Playgroud)

\ D工作正常,但我已经尝试过(?!.), (?!\.), [^.], [^\.]等等......

有关正则表达式的任何建议,除了数字或小数外都能正确识别吗?

谢谢您的帮助

Cha*_*ndu 213

用这个:

document.getElementById(target).value = newVal.replace(/[^0-9.]/g, "");
Run Code Online (Sandbox Code Playgroud)

  • 然后通过parseFloat运行返回的值.这将删除额外的小数点.例如`parseFloat("46554.4655465.54654.545345.5")= 46554.4655465` (3认同)
  • 使用 `replace(/[^0-9.\-]/g, '')` 你也会得到负数 (2认同)

lub*_*sdz 8

仅删除小数部分可以按如下方式进行:

number.replace(/(\.\d+)+/,'');
Run Code Online (Sandbox Code Playgroud)

这会将13.6667px转换为13px(保持单位px不变).


Bea*_*use 7

试试这个:

document.getElementById(target).value = newVal.replace(/^\d+(\.\d{0,2})?$/, "");

  • "11111".replace(/ ^\d +(\.\ d {0,2})?$ /,"") - 结果为空字符串 (3认同)
  • 最佳答案.删除0.000 10.000000 .22 2.234,但保持1,10,10.1,10.22 (2认同)