验证以逗号分隔的值的常见方法是将它们拆分为数组,然后对每个成员执行regEx匹配。但是,我想利用Angular的即时验证并在视图中执行此匹配。
我的注册表:
^\d{5}?,*$
在第一场比赛中表现完美,但我不知道如何要求它检查这种模式n次。
表格代码:
<form id="zipCodeForm" name="zipCodeForm" ng-submit="submit()" >
<input id="zipCodeInput" ng-model="text" name="text" type="text"
required ng-pattern="/^\d{5}?,*$/" > </input>
<input id="zipSubmit" type="submit" value="Submit" class="btn btn-large btn-primary"></input>
<div class="alert alert-info formatguide" ng-show="zipCodeForm.text.$dirty && zipCodeForm.text.$invalid">
Enter Comma Separated 5-Digit Zip Codes ex.(11111,22222,33333)
</div>
</form>
答案 0 :(得分:3)
如果您不知道有多少邮政编码,但至少需要一个,那么这个
^\d{5}(?:,\d{5})*$
如果您知道多少,请使用此
^\d{5}(?:,\d{5}){how many - 1}$
编辑 - 两个正则表达式解释了。
^ # Begining of string
\d{5} # followed by 5 digits
(?: # Cluster group
, # a literal comma
\d{5} # followed by 5 digits
)* # End Cluster group, optionally do many times
$ # End of string
# ---------------------------------------------------------
^ # Begining of string
\d{5} # followed by 5 digits
(?: # Cluster group
, # a literal comma
\d{5} # followed by 5 digits
){3} # End Cluster group, do exactly 3 times
$ # End of string