我正在尝试将字符串验证为电话号码(数字和某些特殊字符)。我使用了此处的现有代码片段: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/