【发布时间】:2019-05-09 11:53:07
【问题描述】:
我正在尝试使用以下代码验证输入文本字段的值:
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
【问题讨论】:
-
我在这里错过了什么。你有没有价值的
regexpValidar和没有被使用的regexNIT。 -
使用
if (/^[a-zA-Z0-9&#,@.ÑñáéíóúÁÉÍÓÚ|\s]+$/.test(value)) {...}。请注意[A-z]matches more than just letters。如果允许空字符串,请将@987654327@ 替换为*。如果|用作 OR 运算符,只需将其从字符类中删除(因为它被视为文字管道字符)。请注意,在字符串文字中,所有反斜杠必须加倍以表示文字反斜杠。"\s"="s"在 JS 中 -
你的意思可能是
A-Zrange。 -
它返回 true 是因为它匹配单个字符 6,而不是因为 !
标签: javascript regex