如何通过AngularJS中的正则表达式获取以下模式?

时间:2016-02-04 07:40:43

标签: javascript angularjs regex html-validation

我正在使用AngularJS在我的表单中进行一些验证。在那里有几个领域,我只需要接受数字。范围从单个数字到n个数字。我打算在AngularJS的ngPattern属性中使用正则表达式。

我需要使用正则表达式完成以下操作:

  • 如果是单个数字,则不应为0.可以是1到9之间的任何数字。
  • 如果是多位数字,0到9之间的所有数字都可用于并非所有数字都为0的任何位置,即输入的总值不应为0

我正在努力寻找能够接受这种模式的正则表达式。是否可以使用正则表达式接受这种模式?之前我认为至少最后一个数字应该是非零数字,这样0000之类的条目将不可能,并且必须是000x,其中x是从1到9的任何值。但是这个逻辑是有缺陷的,因为它不允许人们以10的倍数输入值。

如何实施此验证?

2 个答案:

答案 0 :(得分:2)

我想,这是你正在寻找的那个:

^[0-9]*[1-9][0-9]*$

匹配包含至少一个非零数字的任何数字。

答案 1 :(得分:1)

更好的答案是:

^(([1-9])|(0?([1-9]{1})[0-9]*))$

这与上面基本相同,但它也允许01 - 09(以及01 [##] ofcourse),具体取决于你的申请。