逗号搞乱Javascript中的数字输入

MrG*_*ass 27 javascript string user-input

我有一个页面,其中包含一些由用户控制的元素.其中一个是文本输入字段,用户应该输入一个数字.如果用户只输入数字(EG 9000),但是用户使用逗号表示法(9,000),则一切正常,javascript不会将输入作为整数.

如何删除逗号和/或强制输入整数?我尝试使用parseint(),但它似乎不能用逗号.

ade*_*hus 55

使用全局正则表达式将所有逗号替换为空字符串:

var str = "12,345,678";
str = str.replace(/,/g, "");
parseInt(str, 10);
Run Code Online (Sandbox Code Playgroud)

  • 这里唯一需要注意的是十进制符号的局部差异;逗号与句号,https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString (2认同)

Ven*_*ddy 5

甚至更好

var s="jdjsghd0182.99";
var str = parseFloat(s.replace(/[^0-9 | ^.]/g, ''));
Run Code Online (Sandbox Code Playgroud)

  • 我完全不同意这“更好”。此建议以及@blankabout 的建议正在更改用户的输入,一旦您这样做,您还需要询问用户您对其输入的解释是否是他们真正想要的。尽管逗号是可接受且预期的偏差,但添加其他字符则不然。 (4认同)