我是RegEx的新用户我正在尝试验证一个包含10位数字,+
和2位数国家/地区代码的电话号码。尝试使用少量正则表达式,但我无法将+
和国家/地区代码设为可选^[+]*\d[0-9]{10,12}$
。谁能告诉我哪里错了。提前谢谢。
答案 0 :(得分:3)
您需要使用可选的非捕获组将前两位数字括起来:
^[+]?(?:[0-9]{2})?[0-9]{10}$
^^^^^^^^^^^^^
请参阅regex demo。
<强>详情:
^
- 字符串开头[+]?
- 可选的+
(?:[0-9]{2})?
- 2位数[0-9]{10}
- 10位数$
- 字符串结束。答案 1 :(得分:3)
如果我理解你的问题(可选部分有点模糊),那么给定的答案都不能达到你想要的效果。所以,我在这里;)
^(?:\+\d\d)?\d{10}$
首先是可选非捕获组,其中+
和是国家/地区代码。然后是10位数字。
答案 2 :(得分:1)
你可以试试这个
^([0|\+[0-9]{1,5})?([7-9][0-9]{9})$
答案 3 :(得分:-1)
您使用的是Html5模式吗?如果是,下面可能是你的答案,
<input type="text" pattern="[\+][\(]\d{2}[\)]\d{10}" required/>
e.g。格式:+(91)1234567890