如何在ng-pattern中使用正则表达式以避免某些特殊字符?

时间:2018-03-21 07:45:11

标签: angularjs regex ng-pattern

我必须避免使用ng-pattern中的一些特殊字符。我可以使用以下代码

来避免所有特殊字符
ng-pattern="/^[a-zA-Z0-9]*$/"

但我必须避免这些字符

%;:'",<>

如何写ng-pattern

更新:

<input type="text" class="txt_box" ng-disabled="filechoosen" name="file_name" ng-pattern="/^[^%;:\x27\x22,<>{}[\]\/]*$/" ng-model="filenameedit" id="filenameedit">
<div style="color:Red"  ng-show="file_name.$error.pattern ">These charecters are not allowed</div>

1 个答案:

答案 0 :(得分:1)

您可以使用

ng-pattern="/^[^%;:\x27\x22,<>{}[\]\/]*$/"

请注意,'已转为\x27"转为\x22,可在属性值中自由使用。

<强>详情

  • ^ - 字符串开头
  • [^ - 与除...之外的任何字符匹配的否定字符类的开头
    • %;:\x27\x22,<>{}[\]\/ - %;:'"<>{}[]/
  • ]* - 零次或多次
  • $ - 字符串结束。

参见JS演示:

&#13;
&#13;
var app = angular.module("angularApp", [])
.controller("myConfigGenCtrl", function($scope) {
    $scope.subnet = '';
});
&#13;
<!DOCTYPE html>
<html ng-app="angularApp">

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>

<body ng-controller="myConfigGenCtrl">
  <div class="ipfield">
   <form  name="frm">
    <label class="plclabel">File Name</label>
    <input type="text" class="txt_box" ng-disabled="filechoosen" name="file_name" ng-pattern="/^[^%;:\x27\x22,<>{}[\]\/]*$/" ng-model="name" id="filenameedit">
    <div style="color:red" ng-show="frm.file_name.$error.pattern">Error: % ; : ' " &lt; &gt; { } [ ] and / are not allowed!</div>
   </form>
  </div>
</body>
</html>
&#13;
&#13;
&#13;