javascript - 验证为电话号码

标签 javascript regex

我正在尝试将字符串验证为电话号码(数字和某些特殊字符)。我使用了此处的现有代码片段:http://snippets.dzone.com/posts/show/597这似乎是正确的。但是每次 string.match(format) 都会返回 null,这会导致显示错误消息。

var format = /^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$/;
var string = jQuery(".validate_phone").val();
if (string.match(format) != true) {
  // some error message
}

我已经检查过了,string 被填充为期望值。

以下值应该匹配:
339-4248
339-42-48
339 42 48
339 4248
3394248
(095) 3394248
(095)3394248
+7 (095) 3394248
+7 (095)3394248
+7(095) 3394248
+7(095)3394248

其他所有内容都应显示错误消息。

这段代码有什么问题?提前致谢!

更新:这是一个测试用例 http://labuschin.com/material/phone

最佳答案

Facebook 的一位 friend 成功地帮助我:

var format = /(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}/;  
var nr= prompt("Phone number", "");    
if (nr.match(format) == null) {
  alert ("incorrect");  
} else {  
  alert ("correct");  
} 

更改了 if 子句并删除了开头的 ^ 和结尾的 $。在这里工作:http://labuschin.com/material/phone

关于javascript - 验证为电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2116140/

相关文章:

javascript - 使用 AJAX 始终更新内容

javascript - 类型为 "text/html"的脚本标签是否在任何浏览器中执行?

javascript - 如何使用CasperJS读取文件中的实时变化

regex - 如果前一行匹配模式,sed 替换一行

mysql 正则表达式 utf-8 字符

javascript - jQuery hasClass 不起作用或 if 语句有缺陷

javascript - 将简写 JS 添加到父级

java - 匹配正值或负值的正则表达式模式(例如 "1.2"、 "-2.8"、 "7.8"、 -22.8")

javascript - 信用卡以逗号分隔 - 正则表达式 - Javascript

regex - 匹配在字符串中重复两次的任意序列