逗号搞乱Javascript中的数字输入

时间:2012-02-14 13:44:53

标签: javascript string user-input

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

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

4 个答案:

答案 0 :(得分:49)

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

var str = "12,345,678";
str = str.replace(/,/g, "");
parseInt(str, 10);

答案 1 :(得分:3)

甚至更好

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

答案 2 :(得分:1)

或者甚至更好,鉴于用户输入的一般不可靠性,使用它来摆脱所有非数字字符:

var s = "9,Ljk876";
var t = parseInt(s.replace(/[^0-9]/g, ''));
alert ("s:" + s + ", t:" + t);

答案 3 :(得分:-1)

也许

 parseint(ny9000withCommas.replace(/\,/g,""))

让我们谈谈限制:

您可以/应该允许用户同时输入9000& 9000

您可以通过REGEX检查有效身份。

在服务器端 - 你应该使用逗号并将其视为整数。