【发布时间】:2013-07-02 14:16:06
【问题描述】:
我想使用 javascript 或 jquery 编写一个正则表达式以允许 逗号分隔的数字列表或 空格分隔的数字或 逗号后跟空格分隔的数字或 任何上述前的组合 任何不是数字、空格或逗号的东西都必须被拒绝
应该通过 111,222,333 111 222 333 111、222、333 111,222,333 444 555 666, 111, 222, 333,
不应通过: 111,222,3a 3a 111 222 3a 等等等等
我尝试了下面的代码,但是当我输入时它们似乎可以工作 3a 作为一个数字,它通过了!!!如何?我无法理解我的代码是如何让这封信通过的。
我想拒绝任何不是空格、逗号或数字的东西
或者没有正则表达式有更好的方法吗? google了一下,没有找到答案。
提前感谢您的帮助。
var isNumeric = /[\d]+([\s]?[,]?[\d])*/.test(userInput);
var isNumeric = /^[\d\s,]*/.test(userInput);
var isNumeric = /^[\d]*[\s,]*/.test(userInput);
var isNumeric = /^[\d\s,]*/.test(userInput);
var isNumeric = /\d+\s*,*/.test(userInput);
if (isNumeric == false) {
alert(isNumeric);
return false;
}
else
alert('is Numeric!!!');
【问题讨论】:
-
[\d]与没有[]的\d完全相同 -
另外,您的问题的答案是您在正则表达式的末尾省略了
$,这意味着匹配的模式后面可以跟任何后续字符。 -
您上面的测试用例只会测试最终的正则表达式。
标签: javascript jquery regex numbers delimited