angularjs - 正则表达式允许特殊字符(:) and numbers and alphabets only

标签 angularjs regex angularjs-directive

我正在使用 AngularJS 指令进行表单输入验证。有没有一种方法可以使我的正则表达式仅允许一个特殊字符(:)以及数字和字母。这是我在 stackoverflow 上找到的指令。

        myapp.directive('noSpecialChar', function() {
    return {
        require: 'ngModel',
        restrict: 'A',
        link: function(scope, element, attrs, modelCtrl) {
            modelCtrl.$parsers.push(function(inputValue) {
                if (inputValue == null)
                    return ''
                    cleanInputValue = inputValue.replace(/[^\w\s]/gi, '');
                    cleanInputValue = cleanInputValue.toUpperCase();
                if (cleanInputValue != inputValue) {
                    modelCtrl.$setViewValue(cleanInputValue);
                    modelCtrl.$render();
                }
                return cleanInputValue;
            });
        }
    }
});

我尝试在末尾添加冒号,但无法达到我的解决方案。

最佳答案

根据您当前的代码,您希望替换除字母、数字或空白字符之外的所有内容。

也就是说,正则表达式 [^\w\s:] 应该可以工作。

\w = a-z、A-Z、0-9

\s = 空白字符\r\n\t\f\v

我什至会考虑删除 \s,因为它会在您的输入中留出空格,除非这是您的意图。

关于angularjs - 正则表达式允许特殊字符(:) and numbers and alphabets only,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40872563/

相关文章:

javascript - 如何将 ngOptions 与包含 HTML 实体的字符串一起使用?

javascript - 如何在 5 秒后触发输入提示?

javascript - 错误 : Route. put() 需要回调函数,但得到了 [对象未定义]

javascript - 如果 angularjs 1.x 中显示了 ng 消息,我该如何禁用按钮?

angularjs - 如何将 Controller 动态加载到指令

javascript - 使用替换和正则表达式将 JavaScript 中字符串的每个单词的首字母大写

javascript - 更改元素高度angularJS

javascript - Breeze js 调用元数据但不会对服务器进行第二次调用

java - 正则表达式不适用于 java 中的多个字符串拆分?