regex 如何在AngularJS中通过正则表达式获得以下模式?

oprakyz7  于 2023-06-30  发布在  Angular
关注(0)|答案(2)|浏览(89)

我正在使用AngularJS在我的表单中做一些验证。有几个字段我只需要接受数字。范围从一位数到n位数。我打算在AngularJS的ngPattern属性中使用正则表达式。
我需要使用正则表达式完成以下操作:

  • 如果是个位数,就不应该是0。可以是1到9之间的任何值。
  • 如果它是一个多位数,从0到9的所有数字都可以用于任何不是所有数字都是0的位置。输入的总值不应为0

我正在努力寻找一个能接受这种模式的正则表达式。使用正则表达式是否可以接受这样的模式?早些时候我在想,至少最后一个数字应该是非零数字,这样像0000这样的条目就不可能了,必须是000x,其中x是从1到9的任何一个数字。但是这种逻辑是有缺陷的,因为它不允许人们输入10的倍数。
如何实施此验证?

epfja78i

epfja78i1#

我想,这就是你要找的:

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

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

o7jaxewo

o7jaxewo2#

一个更好的答案是:

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

这基本上与上面的相同,尽管它也允许01 - 09(当然还有01[##]),这取决于您的应用程序。

相关问题