javascript - 美国/加拿大长途电话号码的正则表达式测试?

标签 javascript regex

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

/^\(?([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/

相关文章:

javascript - 使用 jQuery 在 <InsertItemTemplate> 中查找按钮

php - 用于从 HTML 中提取所有链接和 anchor 文本的正则表达式

Java 正则表达式验证

visual-studio - 正则表达式在Visual Studio中搜索字符串中的单词

python - 可以描述字符串的正则表达式

javascript - IE8 中的意外量词

javascript - <li> 中的 <ul> 有时不会删除列表样式的图形(主要在 Bootstrap 下拉菜单中注意到)

数据库;查找和替换

javascript - 用 HTML/CSS 或 Javascript 制作井字棋盘

javascript - 如何制作完整的 POST XMLHttpRequest?