所以我有这个正则表达式测试器:

/^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/.test(value);


在以下情况下非常有效:

123-456-7890
123 456-7890
123-456 7890
(123)-456-7890
123 456 7890


但是在美国/加拿大境内为长途电话号码添加+1时,完全失败:

+1 123-456-7890
1 123-456-7890
11234567890
+1 (123)-456-7890
1 123 456 7890


如何添加这些案例?

最佳答案

我会尝试一下:

/^(\+?1 ?)?\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/.test(value);


我在您的正则表达式前加上了(\+?1 ?)?

关于javascript - 正则表达式测试美国/加拿大长途电话号码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21030347/

10-09 00:38