我想为下一个要求构建正确的RegExp:字符串必须只包含10个数字或10个数字逗号10个数字(第二个变体可以是逗号之前和之后的空格)...而且我不能构建这个:(
我的变体就是这个,但它不正确:
([0-9]{10})|([0-9]{10}\s*\,\s*[0-9]{10})
对不起我的英文=)
UPD:谢谢大家的帮助!
答案 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}$)