javascript正则表达式允许数字和特殊字符,但不允许仅使用零

javascript正则表达式允许数字和特殊字符,但不允许仅使用零,javascript,regex,Javascript,Regex,我需要一个javascript正则表达式来验证电话号码。数字不能是单个零或仅为零 e、 g 这些是不允许的 但这些是允许的: 01-0808-000 10(123)(1234) 11111 到目前为止,我拥有的javascript正则表达式是: /^[!0]*[0-9-\)\(]+$/ 但这似乎不起作用 规则是电话号码可以包含数字和-和(和)。它可以以0开头,但电话号码不能是单个0或仅包含或不包含上述字符的多个零 你能给我指一下正确的方向吗。 提前感谢。此正则表达式应该可以: ^(?=.

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

e、 g

这些是不允许的

但这些是允许的:

01-0808-000
10(123)(1234)
11111
到目前为止,我拥有的javascript正则表达式是:

  /^[!0]*[0-9-\)\(]+$/
但这似乎不起作用

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

你能给我指一下正确的方向吗。
提前感谢。

此正则表达式应该可以:

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

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

在我看来,你应该这样做:

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
else
false

可以尝试以下方法:

/[0-9-()]*[1-9][0-9-()]*/
将匹配任意数量的允许字符和数字,但如果没有1-9,中间部分将无法匹配

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


您能描述一下规则吗?有例子是好的,但是没有考虑到大多数格式。那么
0000000000 1
是允许的吗?
/[0-9-()]*[1-9][0-9-()]*/