正则表达式允许null或1到9位数

时间:2016-11-01 05:58:16

标签: angularjs regex

我尝试使用模式属性验证输入数量字段。但我的正则表达不起作用。请检查

^(?:[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>

3 个答案:

答案 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]*)$

应该够了。