我正在尝试使用以下代码验证输入文本字段的值:
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
关于JavaScript : problem with regular expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53674192/