我有一个指令可以验证输入字段以确保它不包含 &
, <
, >
.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 个或多个 <
的字符串, >
, &
或仅空格。请参阅your regex demo及其 visual graph :
您需要使用
var regExp = /[&<>]/;
此外,字符集中的字符没有任何特殊,无需转义它们。
关于javascript - 输入值在任意位置包含特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59321286/