Ddo*_*Ddo 3 javascript regex phone-number
任何人都可以帮我弄清楚如何做到这一点?我现在的一个是(我在某个地方找到它):
/(\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7)[0-9. -]{4,14})(?:\b|x\d+)/
它可以检测到:+ 86-400-660-8680
但不是这个:
你能帮帮我吗?1正则表达式可以检测所有这些类型的电话号码,或者至少我可以使用2-3个正则表达式来检测它们.
因此,这是满足您需求的巨大正则表达式:
(+?(?:( ?: 9 [976] \ d | 8 [987530] \ d | 6 [987] \ d | 5 [90] \ d | 42 \ d | 3 [875] \ d | 2 [ 98654321] \ d | 9 [8543210] | 8 [6421] | 6 [6543210] | 5 [87654321] | 4 [987654310] | 3 [9643210] | 2 [70] | 7 | 1)|((?:9 [976] \ d | 8 [987530] \ d | 6 [987] \ d | 5 [90] \ d | 42 \ d | 3 [875] \ d | 2 [98654321] \ d | 9 [8543210] | 8 [6421] | 6 [6543210] | 5 [87654321] | 4 [987654310] | 3 [9643210] | 2 [70] | 7 | 1))))[0-9。-] {4,14})( ?:\ b | x \ d +)
而这里就是我的表现如何做到这一点。
你的正则表达式经历了很多麻烦,以确保国家代码符合一套严格的规则,但似乎并不关心它后面的内容.这意味着以下示例将与之匹配:
+86-0000
+86----0
+86-1-1-1-1
Run Code Online (Sandbox Code Playgroud)
以下正则表达式要短得多,对国家代码不严格,但对电话号码的整体结构要求严格.
(?:\+?(\d{1,3}))?[- (]*(\d{3})[- )]*(\d{3})[- ]*(\d{4})(?: *x(\d+))?\b
Run Code Online (Sandbox Code Playgroud)
它与上面的示例不匹配,并且会匹配这些示例:
18005551234
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800 555 1234x5678
8005551234 x5678
1 800 555-5555
1----800----555-5555
Run Code Online (Sandbox Code Playgroud)
对于所有这些示例,捕获组将包含以下值: