我希望输入元素允许以下两个条件之一:
我写了这个正则表达式(解决方案适用于在线正则表达式测试人员):
/(^0$)|(^[1-9]\d{0,8}$)/
但是当我在Angular中的ng-pattern中使用它时,它不起作用。 这是我的掠夺者例子:
http://plnkr.co/edit/iDQ7ly8ypJ3UmN5A0hJw?p=preview
不确定交替是否正在解决问题,或者我弄乱了正则表达式。
更新:似乎type =“number”导致问题。不幸的是,我需要在我的代码中使用它,所以我正在寻找与type =“number”一起使用的解决方案。
答案 0 :(得分:2)
这对你有用。我做了以下事情:
type="number"
。 form
一个名字。 input
一个名字。form
和input
,而不是id
和ng-model
值。它将值转换为封面下的数字,剥离前导零并将文本转换为0等。就我所知,name
是访问它的正确方法。
<form name="myForm">
<input name="myNumberField" ng-model="myNumber" ng-pattern="/(^0$)|(^[1-9]\d{0,8}$)/" required/>
<span ng-show="myForm.myNumberField.$error.pattern">Invalid pattern</span>
</form>