为电话号码创建一个正则表达式,以接受11到13位数字,并在字符串中以“-()和_”开头的+。
这是我创建的正则表达式,可以接受直到11位数字,但未设置最大值:
^((\(?\+?[0-9]*\)?)?[0-9_\- \(\)]){11,13}$
谢谢。
答案 0 :(得分:1)
您可以使用正向前瞻来对数字施加限制。然后编写模式以匹配实际格式:
^(?=\+?(?:\d-?){11,13}$)\+?\d+(?:-\d+)*$
正则表达式细目:
^
输入字符串的开头(?=
开始积极向前
\+?
匹配可选的+
(?:\d-?){11,13}
介于11到13位数字之间,允许短划线$
输入字符串的结尾)
前瞻结束\+?\d+
先匹配+
,然后匹配数字序列(?:-\d+)*
匹配任意数量的-\d+
次出现$
输入字符串的结尾