我在我的号码字段上进行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
}
答案 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
,.2
,3.
,4.5
,12345.67890
等等;它将禁止1,000
,0.123,456
,.
或1.2.3
。
答案 4 :(得分:-1)
使用“lookaround”,一个负面的lookbehind组合并向前看,如果有逗号,你应该能够使比赛失败:
(?<!,)[0-9\.]*(?!,)