使用AngularJS匹配一个或多个字母数字字符

时间:2014-08-14 13:02:09

标签: javascript angularjs

我有一个AngularJS应用程序。为什么模式/^[a-zA-Z0-9]+$/匹配空字符串?

<form name="addTeamForm" novalidate ng-init="team=''">
  <input type="text" name="team" ng-model="team" ng-pattern="/^[a-zA-Z0-9]+$/"/>
</form>
{{ addTeamForm.team.$valid }}

为什么$valid的值为true

http://jsfiddle.net/NameFILIP/fdsqzf12/5/

1 个答案:

答案 0 :(得分:4)

您还需要使用requiredngRequired

<input type="text" name="team" ng-model="team" 
       ng-pattern="/^[a-zA-Z0-9]+$/" required />

ngPattern的工作方式是检查非空字符串以匹配模式。如果字符串为空,则不会进行检查,也不会出现验证错误。除了ngPattern之外,通过指定required指令,您将使空字符串无效值。

更新了小提琴:http://jsfiddle.net/vittore/fdsqzf12/6/