我尝试使用模式属性验证输入数量字段。但我的正则表达不起作用。请检查
^(?:[1-9]\d*|)$
请有人帮助我。我的输入字段应该接受null或1到9位数。不接受0或任何字母和符号。
AngulrJS代码:
<input class="form-control" name="quantity" ng-model="quoteList.quantity" placeholder="Quantity" required="" min="1" ng-pattern="/^(?:[1-9]\d*|)$/">
<div ng-show="userForm.$submitted || userForm.quantity.$touched">
<span ng-show="userForm.quantity.$error.pattern" class="text-danger">Not valid number!</span>
</div>
答案 0 :(得分:2)
如果您想匹配多个号码1-9
,请使用:
^[1-9]*$
这个正则表达式与检查NULL
值一样好。如果你还想允许空值,那么你应该在控制器中明确地包含这个逻辑,即
form.input.$valid || quoteList.quantity === null
<强>更新强>
您真正想问的是如何使用1-9
验证开始的数字,但随后可以跟随任何数字。如果是这样,那么试试这个正则表达式:
^[1-9][0-9]*$
同样,您可以在控制器中检查空值,也允许它们。
答案 1 :(得分:1)
您可以自己检查:
https://regex101.com ^(?:[1-9] \ d * |)$
答案 2 :(得分:0)
^(?:[1-9]*)$
应该够了。