javascript - 输入值在任意位置包含特定字符

标签 javascript angularjs regex

我有一个指令可以验证输入字段以确保它不包含 & , < , >

.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 :

enter image description here

您需要使用

var regExp = /[&<>]/;

此外,字符集中的字符没有任何特殊,无需转义它们。

关于javascript - 输入值在任意位置包含特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59321286/

相关文章:

javascript - JS - 通过引用传递对象

javascript - jQuery:最后聚焦的输入字段未按预期填充

javascript - AngularJS 如何在 setTimeout 后强制更新 DOM

python - 如何从 MZ 可执行文件中提取 Unicode 字符序列?

java - 如何在java.util.Scanner中匹配两个或多个空格?

javascript - 如何获取 json 的一部分?

javascript - Google Apps 脚本 - 从另一个工作表导入工作表值

angularjs - 按谓词过滤表

javascript - undefined 不是一个对象(评估 '$scope.students.pay' )

javascript - 是否可以匹配 a/g Javascript 正则表达式其余部分的开头?