JavaScript : problem with regular expression

标签 javascript regex

我正在尝试使用以下代码验证输入文本字段的值:

function onBlurTexto(value) {

    var regexNIT = "([a-zA-z]|[0-9]|[&#,@.ÑñáéíóúÁÉÍÓÚ\|\s])";

    regexCompilado = new RegExp(regexNIT);

    if (!(regexCompilado.test(value))) {
        alert("Wrong character in text :(");
        return false;
    } else {
        return true;
    }
}

但是当我输入这段文字时:

!65a

函数返回true(如您所见,正则表达式中不存在“!”字符)

我不是正则表达式方面的专家,所以我认为我在构建这个 reg.exp 时遗漏了一些东西。

如何让这个正则表达式发挥作用?

提前致谢。

编辑

我很抱歉...我应该在发布问题之前删除对变量“regexpValidar”的引用。我修改了示例。谢谢@TecBrat

最佳答案

您应该向正则表达式提供开始 (^) 和结束 ($) 标志。现在您正在匹配 65a,因为您有备用集。

这应该有效 /^([a-zA-z]|[0-9]|[&#,@.ÑñáéíóúÁÉÍÓÚ\|\s])+$/g

演示:https://regex101.com/r/zo2MpN/3

关于JavaScript : problem with regular expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53674192/

相关文章:

regex - 不匹配句子中否定词的更易读的方式

javascript - 编写正则表达式来查找特定类型 url 的模式

javascript - 匹配 float 模式的正则表达式

regex - 删除带有 sed 匹配特殊正则表达式的行

regex - 嵌套正则表达式向前和向后看

javascript - 使用 Cheerio 附加节点的 sibling ?

javascript - 使用带有附件的 SendGrid 的 Azure Function (JS)

javascript - 从 @foreach 循环内部访问外部变量

javascript - Laravel 显示 JS 确认对话框与另一个 JS 函数内联

javascript - Flex 3 和 Javascript 分层问题