我有一条指令可以验证输入字段,以确保其中不包含&
,<
,>
.directive('refValidate', [function () {
var regExp = /^[&\<\> ]*$/;
return {
require: 'ngModel',
link: function(scope, elem, attr, ctrl) {
function myValidation(value) {
if (!regExp.test(value)) {
ctrl.$setValidity('validRef', true);
} else {
ctrl.$setValidity('validRef', false);
}
return value;
}
ctrl.$parsers.push(myValidation);
}
};
}]);
仅当值以指定字符开头时才发送false,这需要检查值是否在值中的任何位置包含它们。
问题
如何修改我的reg exp以检查输入值中任何位置的指定字符?
答案 0 :(得分:2)
您要匹配字符串中任何一次出现的<
,>
或&
,但是您的正则表达式匹配包含0个或多个<
的字符串, >
,&
或仅空格。参见your regex demo及其visual graph:
您需要使用
var regExp = /[&<>]/;
此外,您在字符集中具有的字符也不是特殊字符,无需转义。