如果有人可以提供帮助,我将不胜感激..
我需要允许在字符串的任何位置(开头除外)出现破折号(-)。
我的正则表达式是:
^[+]?[0-9]{3,10}$
我想允许以下可能性:
+7-777-77777
7-7-7-7-7-77
等等,这样我就可以在加号(+)和第一个数字之后的任何地方使用破折号。
先感谢您!
如果有人可以提供帮助,我将不胜感激..
我需要允许在字符串的任何位置(开头除外)出现破折号(-)。
我的正则表达式是:
^[+]?[0-9]{3,10}$
我想允许以下可能性:
+7-777-77777
7-7-7-7-7-77
等等,这样我就可以在加号(+)和第一个数字之后的任何地方使用破折号。
先感谢您!
您可以使用前瞻
^(?=([^\d]*\d){3,10}[^\d]*$)[+]?\d+(-\d+)*$
--------------------------
|
|->match further only if there are 3 to 10 digits in string
这将匹配具有 3 到 10 位数字的字符串,可选地-
在字符串之间
在这里试试
如果您想要字符串之间的可选空格
^(?=([^\d]*\d){3,10}[^\d]*$)[+]?\d+(\s*-\s*\d+)*$
我认为您正在寻找的模式是这样的:
^[+]?[0-9][0-9-]{2,9}$
这将匹配一个可选的加号,后跟一个十进制数字,然后是 2 到 9 个十进制数字或连字符。
如果您还想确保字符串不以连字符结尾,只需使用以下命令:
^[+]?[0-9][0-9-]{1,8}[0-9]$
这将匹配一个可选的加号,后跟一个十进制数字,然后是 1 到 8 个十进制数字或连字符,然后是一个十进制数字。
请注意,您还可以将其扩展到所有 Unicode 数字(有关更多信息,请参阅此答案):
^\+?\d[\d-]{2,9}$
或者
^\+?\d[\d-]{1,8}\d$
http://rubular.com/r/8eyAolNHlX
在 Ruby 中它应该可以工作:
/\+?(?:\d\-?\d?)+/
也许这个?
^[+]?\d(-?\d){2,9}$
这要求输入以数字开头和结尾,前面带有可选的加号
^\+?\d[\d-]{,8}\d$