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

How do i use Regular expression in ng-pattern to avoid certain special character?

我必须避免 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>

您可以使用

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

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

详情

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

查看 JS 演示:

var app = angular.module("angularApp", [])
.controller("myConfigGenCtrl", function($scope) {
    $scope.subnet = '';
});
<!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>