如果有人能提供帮助我会很感激..
我需要在字符串的任何位置(开头除外)允许出现短划线( - )。
我的RegEx是:
^[+]?[0-9]{3,10}$
我想允许以下可能性:
+7-777-77777
7-7-7-7-7-77
等。所以我可以在加号(+)和第一个数字之后冲到任何地方。
提前谢谢!
答案 0 :(得分:2)
您可以使用前瞻
^(?=([^\d]*\d){3,10}[^\d]*$)[+]?\d+(-\d+)*$
--------------------------
|
|->match further only if there are 3 to 10 digits in string
这将匹配字符串,其中包含3到10个数字,可选地在字符串
之间具有-
试试here
如果你想在字符串之间有可选空格
^(?=([^\d]*\d){3,10}[^\d]*$)[+]?\d+(\s*-\s*\d+)*$
答案 1 :(得分:0)
我认为您正在寻找的模式是:
^[+]?[0-9][0-9-]{2,9}$
这将匹配一个可选加号,后跟一个十进制数字,后跟2到9个十进制数字或连字符。
如果您还想确保字符串不能用连字符结束,只需使用:
^[+]?[0-9][0-9-]{1,8}[0-9]$
这将匹配一个可选的加号,后跟一个十进制数字,后跟1到8个十进制数字或连字符,后跟一个十进制数字。
请注意,您也可以将其扩展为所有Unicode数字(请参阅this answer for more information):
^\+?\d[\d-]{2,9}$
或
^\+?\d[\d-]{1,8}\d$
答案 2 :(得分:0)
http://rubular.com/r/8eyAolNHlX
在Ruby中应该可以工作:
/\+?(?:\d\-?\d?)+/
答案 3 :(得分:0)
也许这个?
^[+]?\d(-?\d){2,9}$
答案 4 :(得分:0)
这需要输入开头和结尾带有前面可选加号的数字
^\+?\d[\d-]{,8}\d$