我想为带有国家代码前缀的美国电话号码写一个正则表达式。格式应为
+12345678900
+1 (801) 234 5678
+1801-234-5678
答案 0 :(得分:2)
尝试一下,这在您的3种格式之间使用OR(|
)。可以调整为严格程度。
https://regex101.com/r/c9G5ZO/1
\+\d{11}|\+\d\s?\(\d{3}\)(\s?\d){7}|\+(\d[-]?){11}
由于是美国,因此您可以将第一个数字强制为1,而不是\d
,如下所示:
\+1\d{10}|\+1\s?\(\d{3}\)(\s?\d){7}|\+1(\d[-]?){10}