正则表达式用浮点数替换多个句点

php*_*meh 3 javascript regex

如果我输入这样的内容:a1.b22.333,我希望它输出:

1.22333或122.333

它消除了非数字字符和超过1的任何时间段.

我最好的猜测是:

obj.value = obj.value.replace( /[^0-9\.{1}]+/g ,  '');     
obj.value = obj.value.replace( /[^0-9\.{2,}]+/g ,'');     
obj.value = obj.value.replace( /[^0-9\.(?=.*\.)]+/g ,'');
Run Code Online (Sandbox Code Playgroud)

但这些都输出1.22.333

我怎样才能摆脱这段额外的时期?

谢谢你的帮助.

jfr*_*d00 13

你可以这样做:

obj.value = obj.value.replace(/[^\d\.]/g, "")
  .replace(/\./, "x")
  .replace(/\./g, "")
  .replace(/x/, ".");
Run Code Online (Sandbox Code Playgroud)

这将删除所有非数字,非句点字符,然后仅用"x"替换第一个句点,然后删除所有其他句点,然后将"xxx"更改回句点.