繁体   English   中英

javascript正则表达式允许数字和特殊字符,但不能只有零

[英]javascript regex to allow numbers and special characters but not zeroes only

我需要一个javascript正则表达式来验证电话号码的数字。 数字不能是单个零或仅为零。

例如

0
000
00000-000-(000)

这些是不允许的。

但这些是允许的:

01-0808-000
10(123)(1234)
11111

到目前为止我的javascript正则表达式是:

  /^[!0]*[0-9-\)\(]+$/

但这似乎不起作用。

规则是电话号码可以包含数字和-() 它可以以0开头,但电话号码不能是单个0或只有上述字符的零个数。

你能指出我正确的方向吗? 提前致谢。

这个正则表达式应该工作:

^(?=.*?[1-9])[0-9()-]+$

工作演示

可以试试这个:

/[0-9-()]*[1-9][0-9-()]*/

将匹配任意数量的允许字符和数字,但如果没有1-9,则中间部分将无法匹配。

/[0-9-()]*[1-9][0-9-()]*/

正则表达式可视化

Debuggex演示

这个:

(?=^[0-9-)(]+$)(?=.*[1-9].*)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM