正则表达式检查用户输入模式

时间:2013-08-13 13:20:45

标签: regex

我的用户在文本框中输入一些数字。数字格式为09XXXXXXXXX。数字由逗号分隔。像09121234567,09351234568。我使用下面的正则表达式来检查用户输入。

^(09\d{9},?)+

一切都还可以,但问题是,如果我输入0912123456709351234568,它仍然匹配此正则表达式。 我希望用户输入至少一个没有逗号的数字,但如果数字多于一个则应该用逗号分隔。什么是正确的正则表达式?

2 个答案:

答案 0 :(得分:5)

尝试下面的这种模式,

^(09\d{9})(,09\d{9})*$

enter image description here

答案 1 :(得分:3)

您可以使用此模式:

^(09\d{9}(?:,|$))+$

基本上,09\d{9}后面可以跟一个逗号或字符串的结尾,整个事情必须在字符串的末尾终止。

然而,这将捕获逗号。如果您想省略它,您可以简单地重新排列组:

^(?:(09\d{9})(?:,|$))+$