验证逗号分隔的数字

时间:2013-12-02 20:25:49

标签: javascript regex

我必须检查字符串是否具有此模式:1,2,10,11

规则是:

  • 可能是以下序列:11,21,2,n+1。许多用户想要的数字;
  • 该数字后面必须跟一个逗号,但不能以它结尾,例如:1,;
  • 该号码可以有1或2位数字;
  • 没有其他字符,但数字和逗号,没有空格或其他;
  • 无需检查数字序列,这不是重点。

我试过的是:

  • (\d{1,2})(,):此代码检查1,句子,并返回true没有字符串,其余字符串为1,afasfs;
  • 我已尝试向前看:(\d{1,2})(?=(,))但它也接受上述情况;
  • 上述两种情况我都无法应用^$,因为它在正确的情况下失败,例如:1,2,3

我不知道的是如何测试整个字符串。我的所有测试只检查其中的一部分(例如1,)而不是整个字符串。

注意:我正在使用JavaScript test()函数。不知道是否是正确的,但我相信它是。

2 个答案:

答案 0 :(得分:6)

你可以试试这个正则表达式:

/^(\d{1,2},)*\d{1,2}$/

详细说明:

^           - Line start
\d{1,2}     - 1 or 2 digit number
\d{1,2},    - 1 or 2 digit number followed by a comma
(\d{1,2},)* - 0 or more of 1/2 digit number followed by a comma character
\d{1,2}     - 1 or 2 digit number
$           - Line end

Regular expression visualization

答案 1 :(得分:1)

每个OP

  

数字必须后跟逗号

对anubhava的模式进行一点修改/^(\d{1,2},)+\d{1,2}$/否则它只会验证单个或两个数字,如110