0

我想验证允许像 []^_,atoz,1 到 10 个字符这样的特殊字符的文本框。使用 ng-pattern="/^[a-zA-Z0-9]*$/" 它允许输入但它没有启用提交按钮。但问题是我们不应该允许用户输入特殊字符,尤其是重音(`):

<input type="text" ng-pattern="/^[a-zA-Z0-9]*$/">

并且还使用以下验证:

<input type="text" restrict="^[^a-zA-Z0-9]*$/">

请帮助我。在此先感谢。

4

1 回答 1

0

您可以使用指令

directive('noSpecialChar', function() {
            return {
                require: 'ngModel',
                restrict: 'A',
                link: function(scope, element, attrs, modelCtrl) {
                    modelCtrl.$parsers.push(function (inputValue) {

                            if (inputValue == null)
                                return ''
                            var cleanInputValue = inputValue.replace(/[^\w\s]/gi, '');
                            if (cleanInputValue != inputValue) {
                                modelCtrl.$setViewValue(cleanInputValue);
                                modelCtrl.$render();
                            }
                            return cleanInputValue;

                    });
                }
            }
        })

HTML

<input type='text' no-Special-Char />
于 2017-09-26T10:54:35.413 回答