当前位置: 首页 > 知识库问答 >
问题:

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

齐乐
2023-03-14

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

e. g.

0
000
00000-000-(000)

这些是不允许的。

但这些是允许的:

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

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

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

但这似乎不起作用。

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

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

共有3个答案

沈畅
2023-03-14

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

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

龙令
2023-03-14

你可以试试这个:

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

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

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

调试程序演示

姬欣怡
2023-03-14

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

^(?=.*?[1-9])[0-9()-]+$
 类似资料:
  • 我的表单中有2个输入字段(电话号码),我应该验证这些输入。数字0-9和()-只允许,位数应该在5和11之间{5,11}。我试着用方法替换。你能解释一下,它是如何工作的吗?

  • 问题内容: 我努力了: 但我猜我做错了什么。 问题答案: 1.使用PHP的内置ctype_alnum 您不需要为此使用正则表达式,PHP有一个内置函数可以为您执行此操作,并且执行速度更快: 2.或者,使用正则表达式 如果您非常想使用正则表达式,则有几种选择。 首先: 包含多个字母数字(包括下划线),但包含所有。 或者: 甚至只是:

  • 我已经使用了这个正则表达式:“^[0-9a-zA-Z]{6,}$” 它允许:数字,大写字母,小写字母。它不允许:空白和特殊字符或符号。 但我想将其修改为: -允许:数字,以及大写字母或小写字母 -不允许:空白和特殊字符或符号。 实际上,我想将其用作Transaction ID的正则表达式。 有效的例子: TY5TF45TF463CHB7437R(大写数字) 无效示例: > SSHD434GFHDG

  • 我正在努力与正则表达式和需要它的程序。 输入只需要字母数字键,还需要(只允许逗号、:、空格、/、-在特殊字符中) 据我所知,我已经尝试=(^[a-zA-Z0-9,:\S/-]*$),如果我错了,请纠正我。a-zA-Z0-9-字母数字键.,:-逗号和冒号-S-Space/-我不确定如何表示正斜杠,因此我对其进行了转义--破折号也不确定是否需要转义它。 如果可以更正并解释每个部分,将不胜感激。 提前谢

  • 问题内容: 我在这里的研究中得到了不同的答案。 有人可以验证Redis服务器只能存储任何数值的表示吗? 例如,如果我在lpush中使用具有双重类型的Java客户端(Jedis),在发送给Redis之前是否需要将其转换为等效于字符串类型的内容? 还是有一种方法可以发送诸如double之类的实际数字类型?如果是这样,是否有任何示例代码说明了如何实现此目的? 谢谢 问题答案: Redis将所有内容存储在

  • 我正在尝试构建一个正则表达式来验证用户名,该用户名将包含字母数字字符,并且应该允许<代码>(dot)(撇号)和-(破折号),我尝试了以下正则表达式,但它们不起作用 <代码>/^[a-zA-Z0-9\.-]$/<代码> 请帮帮忙