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

正则表达式数字和特殊符号只允许输入

阎裕
2023-03-14

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

formPhone.forEach(element => {
            element.addEventListener("input", (e) => {
               e.target.value = e.target.value.replace(/[^\d\(\)\+\-]{5,9}/g, '');

            })
        })

共有1个答案

左丘修齐
2023-03-14

{5,9}代码中的量词限制匹配的长度,但它也计算非数字符号()-。如果要使用正则表达式,可以分两步进行:

let phone = '+12(34)567-89-01';
let pureNumbers = phone.replace(/[()+-]/g, ''); // Delete '()+-' symbols from string
let isCorrectNumber = /^\d{5,11}$/.test(pureNumbers); // Check if 'pureNumbers' string has only digits and length from 5 to 11

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

  • 我需要一个javascript正则表达式来验证电话号码。数字不能是单个零或仅为零。 e. g. 这些是不允许的。 但这些是允许的: 到目前为止,我拥有的javascript正则表达式是: 但这似乎不起作用。 规则是电话号码可以包含数字和和和。它可以以0开头,但电话号码不能是单个0或仅包含或不包含上述字符的多个零。 你能给我指一下正确的方向吗。提前谢谢。

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

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

  • 我试图为密码字段创建一个验证,它只允许字符和 时有什么区别,以及哪些字符来自

  • 我们有正则表达式来验证一个数字、一个大写字母和一个小写字母的密码。正则表达式是: 这个正则表达式不允许任何特殊字符。我需要更改正则表达式以允许一些特殊字符列表,并且不应该有任何限制,必须至少有一个特殊字符。只有