RegEx数字

时间:2013-04-12 14:22:29

标签: regex numbers

我想为下一个要求构建正确的RegExp:字符串必须只包含10个数字或10个数字逗号10个数字(第二个变体可以是逗号之前和之后的空格)...而且我不能构建这个:(
我的变体就是这个,但它不正确:

([0-9]{10})|([0-9]{10}\s*\,\s*[0-9]{10})

对不起我的英文=)

UPD:谢谢大家的帮助!

6 个答案:

答案 0 :(得分:2)

您的模式是正确的,但有一个小缺陷。要记住的规则是:

  

如果你的模式是其他两种模式的OR(|),其中一种模式是另一种模式的子模式,则先放置最大的模式。

因此,通过重新安排您已有的内容,我们将获得:

^([0-9]{10}\s*\,\s*[0-9]{10})$|^([0-9]{10})$

已添加^$以仅包含完整行匹配。

答案 1 :(得分:1)

试试这个:

^\d{10}( ?, ?\d{10})?$

使用?使前面的表达式成为可选

答案 2 :(得分:1)

这是你需要的正则表达式:

\d{10}( ?, ?\d{10})?

答案 3 :(得分:1)

您必须匹配字符串的开头和结尾。

/^\d{10}( *, *\d{10})?$/

尝试使用:

/^\d{10}( *, *\d{10})?$/.test(your_string);

答案 4 :(得分:1)

^\d{10}(?: ?, ?\d{10})?$
  • ^...$ =在字符串的开头和结尾之间
  • \d{10} = 10位数
  • ? =可选空间
  • (?:) =非=捕获群组

答案 5 :(得分:1)

试试这个

(^\d{10}$|^\d{10} ?, ?\d{10}$)