我必须避免使用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
,以便在属性值中自由使用。
细节
^
- 字符串的开头[^
- 与除...之外的任何字符匹配的否定字符类的开头
%;:\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: % ; : ' " < > { } [ ] and / are not allowed!</div>
</form>
</div>
</body>
</html>