Ger*_*oer 3 regex phone-number
我在StackOverflow上看到了一些与电话号码匹配的正则表达式。但是,许多人似乎并未考虑可能的空格或数字之间的虚线以提高可读性。
我来自荷兰,但我想使用与任何电话号码都匹配的正则表达式,包括国外的电话号码。
我想将其用于插件,例如用于浏览器的Skype查找和替换插件。
目前,我正在使用以下正则表达式:
^((\+)?)([\s-.\(\)]*\d{1}){8,13}$
Run Code Online (Sandbox Code Playgroud)
有人对此有所改善吗?
我会去
# countryCode
(?:\+\d{1,3}|0\d{1,3}|00\d{1,2})
# actual number
(?:[-\/\s.]|\d)+
# combined with optional country code and parantheses in between
^(?:\+\d{1,3}|0\d{1,3}|00\d{1,2})?(?:\s?\(\d+\))?(?:[-\/\s.]|\d)+$
Run Code Online (Sandbox Code Playgroud)
这应该足以匹配大多数欧洲和美国的电话号码表示形式,例如
+49 123 999
0001 123.456
+31 (0) 8123
Run Code Online (Sandbox Code Playgroud)
但是总的来说,电话号码有太多重叠的文字表示形式,无法在不同国家/地区使用单个Regex。如果您可以匹配所有表示形式,则会得到许多误报。瑞士的数字可能与俄罗斯,德国或加纳的其他数字相同。这一切都是要平衡精确度和召回性,并针对您真正需要的国家优化Regex。
| 归档时间: |
|
| 查看次数: |
10940 次 |
| 最近记录: |