我设计了正则表达式(see fiddle) /(\+|0|\()[\d()\s-]{6,20}\d/g
以匹配以下格式的电话号码。
(\+|0|\()
是匹配+或0或(首先是
[\d()\s-]
用于匹配数字,括号,空格,连字符
\d
将匹配最后一位的数字
+43 543 765 5434
0043 543 765 5434
0543 765 5434
+43(0)543 765 5434
05437655434
0543-765-5434
不幸的是,这个正则表达式还匹配数字之间的换行符,比如
" 43
654 416 4444 "或
" stowasser09
65
808090 "
因此,我考虑将正则表达式中的\s
替换为[^\S\r\n]
以匹配
空白但没有换行,但无法使其发挥作用?
同样将{6,20}
应用于整个正则表达式会更好,而不是
只是[\d()\s-]
- 部分好吗?我想象/((\+|0|\()[\d()\s-]\d){6,20}/g
之类的东西,即整个匹配的电话号码不应小于6且不超过20个字符,包括+ | 0 | (在第一位和最后一位。
谢谢!