带有国家代码前缀的美国 phone 号码的正则表达式

Regex for USA phone number with country code prefix

我想为带有国家代码前缀的美国 phone 号码编写正则表达式。格式应为

+12345678900
+1 (801) 234 5678
+1801-234-5678

试试这个,它在您的 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}