8

我想使用 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 作为数字时,它通过了!!!如何?我无法理解我的代码是如何让这封信通过的。

我想拒绝任何不是空格、逗号或数字的东西

或者有没有更好的方法来做到这一点没有正则表达式?我查看了谷歌并没有找到任何答案。

预先感谢您的任何帮助。

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!!!');
4

3 回答 3

9

正则表达式 ^[\d,\s]+$ 不会解决问题吗?

于 2013-07-04T14:17:29.867 回答
1

试试这个正则表达式...点击查看您的演示

^[0-9 _ ,]*$
于 2013-07-04T14:20:50.217 回答
0

Guess ^(\d+[, ]+)*$ should do it.

Explanation: A group containing one or more digits followed by at least one space or comma. Group may be repeated any number of times.

It's doesn't handle everything though, like failing when there are commas without a number between (if that's what you want).

于 2013-07-04T14:22:43.267 回答