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

问题描述 投票:1回答:1

我必须避免使用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>
angularjs regex ng-pattern
1个回答
1
投票

你可以用

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

请注意,'转向\x27"转换为\x22,以便在属性值中自由使用。

细节

  • ^ - 字符串的开头
  • [^ - 与除...之外的任何字符匹配的否定字符类的开头 %;:\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>
© www.soinside.com 2019 - 2024. All rights reserved.