我需要一个javascript正则表达式来验证电话号码。数字不能是单个零或仅为零。
e.g
0
000
00000-000-(000)
这些是不允许的。
但这些是允许的:
01-0808-000
10(123)(1234)
11111
到目前为止我的javascript正则表达式是:
/^[!0]*[0-9-\)\(]+$/
但这似乎不起作用。
规则是电话号码可以包含数字-
以及(
和)
。它可以以0开头,但电话号码不能是单个0或只有上述字符的零个数。
你能指出我正确的方向吗? 提前谢谢。
答案 0 :(得分:5)
答案 1 :(得分:2)
可以试试这个:
/[0-9-()]*[1-9][0-9-()]*/
将匹配任意数量的允许字符和数字,但如果没有1-9,则中间部分将无法匹配。
/[0-9-()]*[1-9][0-9-()]*/
答案 2 :(得分:0)
这一个:
(?=^[0-9-)(]+$)(?=.*[1-9].*)
答案 3 :(得分:0)
IMO你应该这样做:
var str = "10(123)(1234)";
var res = str.replace(/[^\d]/g, '');
var fres = /^0+$/.test(res);
if(fres)
console.log("Not a valid phone number");
else
console.log("valid phone number");
这将根据零的内容告诉您电话号码是否有效。如果全部为零且没有其他数字,则会返回true
其他false