use*_*686 54 regex angularjs angularjs-validation
我ng-pattern="/0-9/"
用来设置price_field
不接受decimal number
.但是当我输入自然数(从0到9999999)时,ng-show
会被激活Not valid number!
.
我哪里做错了?.请帮忙.
<form name="myform" data-ng-submit="create()">
<input type="number"
name="price_field"
data-ng-model="price"
require
ng-pattern="/0-9/"
<span ng-show="myform.price_field.$error.pattern">Not valid number!</span>
<input type="submit" class="btn">
</form>
Run Code Online (Sandbox Code Playgroud)
Chi*_*ice 123
问题是您的REGX模式只匹配输入"0-9".
为了满足您的要求(0-9999999),您应该重写您的regx模式:
ng-pattern="/^[0-9]{1,7}$/"
Run Code Online (Sandbox Code Playgroud)
我的例子:
HTML:
<div ng-app ng-controller="formCtrl">
<form name="myForm" ng-submit="onSubmit()">
<input type="number" ng-model="price" name="price_field"
ng-pattern="/^[0-9]{1,7}$/" required>
<span ng-show="myForm.price_field.$error.pattern">Not a valid number!</span>
<span ng-show="myForm.price_field.$error.required">This field is required!</span>
<input type="submit" value="submit"/>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
JS:
function formCtrl($scope){
$scope.onSubmit = function(){
alert("form submitted");
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个jsFiddle演示.
Nis*_*ani 11
这很有效
<form name="myform" ng-submit="create()">
<input type="number"
name="price_field"
ng-model="price"
require
ng-pattern="/^\d{0,9}(\.\d{1,9})?$/">
<span ng-show="myform.price_field.$error.pattern">Not valid number!</span>
<input type="submit" class="btn">
</form>
Run Code Online (Sandbox Code Playgroud)