Angular ng-pattern regex无法正常工作

时间:2016-09-29 08:30:11

标签: javascript angularjs regex ng-pattern

我正在尝试为角度输入字段创建验证,该字段仅接受a-zA-Z0-9字符和特殊字符“。”(句号),“_”(下划线),“@”(在标志处)

我似乎无法理解它。

我试过了:

ng-pattern="/[a-zA-Z0-9_@.]+/"

要求:

  • 它只能包含字母字符
  • 它可以包含字母和数字
  • 它可以包含字母数字和提到的特殊字符
  • 它不能包含空格

4 个答案:

答案 0 :(得分:8)

ng-pattern应如下:

ng-pattern="/^[a-zA-Z0-9_@.]+$/" 

在此处查看演示:http://plnkr.co/edit/ElBuuxGilBbC9fdA2n0P?p=preview

答案 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;
&#13;
&#13;

答案 3 :(得分:1)

只是为了添加最新信息。如果你使用Angular4,它应该是:

pattern="^[a-zA-Z0-9_@.]+$"
相关问题