RegEx / Javascript验证:不允许逗号作为有效字符

时间:2010-05-18 20:21:11

标签: javascript regex

我在我的号码字段上进行Javascript验证。我正在使用RegEx来执行此操作 - 第一次使用RegEx用户。我需要用户只输入数字和小数,但不能输入逗号。 (即3600.00没问题,但不是3,600.00)。我无法弄清楚如何将逗号排除为可接受的角色。任何帮助表示赞赏。谢谢!

                        var filter = /^([0-9])/;

                            if (!filter.test(txtItemAmount.value)) 
                            {
                                msg += "Item amount must be a number.\n";
                                txtItemAmount.focus
                            }       

5 个答案:

答案 0 :(得分:1)

如果你想允许小于1的小数,带小数部分的整数或整数,你可以为它写一个reg exp -

/^(\.\d+)|(\d+(\.\d+)?)$/.test(value)

or you can use parseFloat-

if(parseFloat(value)+''===value)

答案 1 :(得分:0)

您的过滤器应该类似于[0-9. ]+(此处您允许数字,.和空格

更好的过滤器为[0-9 ]*[ .][0-9 ]*,您只允许.一次。

我不了解javascript中的正则表达式,因此您可能需要使用\来保护某些字符。

答案 2 :(得分:0)

试试这个:

^(\d+(\.\d*)?)$

它会查找一个或多个数字(\d+),然后查找一个句点,后跟0个或更多个数字((\.\d*)?)。问号意味着必须有1或0次重复的周期和更多的数字部分。句点(。)是正则表达式中的一个特殊字符,所以它必须被转义,因此它是\之前的\。

有关详细信息,您可能需要查看here

答案 3 :(得分:0)

^(\d+\.?|\d*\.\d+)$

将允许1.23.4.512345.67890等等;它将禁止1,0000.123,456.1.2.3

答案 4 :(得分:-1)

使用“lookaround”,一个负面的lookbehind组合并向前看,如果有逗号,你应该能够使比赛失败:

(?<!,)[0-9\.]*(?!,)