我正在尝试为角度输入字段创建验证,该字段仅接受a-zA-Z0-9字符和特殊字符“。”(句号),“_”(下划线),“@”(在标志处)
我似乎无法理解它。
我试过了:
ng-pattern="/[a-zA-Z0-9_@.]+/"
要求:
答案 0 :(得分:8)
ng-pattern应如下:
ng-pattern="/^[a-zA-Z0-9_@.]+$/"
答案 1 :(得分:4)
这对你有用.. ng-pattern =" / ^ [a-zA-Z0-9 ._ @] + $ /"
答案 2 :(得分:3)
以下是"块"写下最终解决方案:
它只能包含字母字符 - 使用
^[a-zA-Z]+$
它可以包含字母和数字 - 使用^[a-zA-Z0-9]+$
它可以包含字母数字和提到的特殊字符 - 使用^[a-zA-Z0-9_@.]+$
它不能包含空格 - 使用ng-trim="false"
(请参阅this SO thread)
JS完整演示:
var app = angular.module("app", []);

<html ng-app="app">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>
<body>
<form name="form">
<p>Enter text to validate:</p>
<input type="text" ng-model="name" name="name" ng-pattern="/^[a-zA-Z0-9_@.]+$/" ng-trim="false" />
<div ng-show="form.name.$error.pattern">Text doesn't match with ng-pattern!</div>
</form>
</body>
</html>
&#13;
答案 3 :(得分:1)
只是为了添加最新信息。如果你使用Angular4,它应该是:
pattern="^[a-zA-Z0-9_@.]+$"