如何限制angularjs文本框中的特殊字符

我正在学习AngularJS,目前正在为AngularJS尝试表单validation。 我想限制文本框中的特殊字符,即如果用户输入任何特殊字符,则不应允许或在文本框中显示它们。 如果有人知道解决方案,那么请评论。

在此处输入图像描述

这可以通过使用指令来实现。 NgModelController提供了$parsers ,我们可以添加一个解析器,它从输入值中扫描并删除特殊字符(如果有的话),并将修改后的值存储回ng-model ,同时在视图上呈现相同的值。

我创建了一个指令。 在您的应用程序中包含此指令。

  app.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, ''); if (cleanInputValue != inputValue) { modelCtrl.$setViewValue(cleanInputValue); modelCtrl.$render(); } return cleanInputValue; }); } } }); 

然后你可以在文本输入元素上使用它来防止特殊字符。

注意 :您需要在输入字段上将其添加为no-special-char

示例:

见Plnkr

你可以在这个正则表达式中使用ng-pattern /^[a-zA-Z0-9]*$/

  

validation将是错误的。