angularjs - solo - ng-pattern-restrict
validar el nĂºmero de entrada natural con ngpattern (3)
El problema es que su patrón REGX solo coincidirá con la entrada "0-9".
Para cumplir con sus requisitos (0-9999999), debe volver a escribir su patrón regx:
ng-pattern="/^[0-9]{1,7}$/"
Mi ejemplo
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>
JS:
function formCtrl($scope){
$scope.onSubmit = function(){
alert("form submitted");
}
}
Aquí hay una demostración de jsFiddle .
Utilizo ng-pattern="/0-9/"
para establecer price_field
no acepto decimal number
. Pero cuando ingreso un número natural (de 0 a 9999999), ng-show
se activa con ¡ Not valid number!
.
¿Qué hice mal?. Por favor ayuda.
<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>
Esto esta funcionando
<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>
<label>Mobile Number(*)</label>
<input id="txtMobile" ng-maxlength="10" maxlength="10" Validate-phone required name=''strMobileNo'' ng-model="formModel.strMobileNo" type="text" placeholder="Enter Mobile Number">
<span style="color:red" ng-show="regForm.strMobileNo.$dirty && regForm.strMobileNo.$invalid"><span ng-show="regForm.strMobileNo.$error.required">Phone is required.</span>
El siguiente código ayudará a validar el número de teléfono y la directiva respetada es
app.directive(''validatePhone'', function() {
var PHONE_REGEXP = /^[789]/d{9}$/;
return {
link: function(scope, elm) {
elm.on("keyup",function(){
var isMatchRegex = PHONE_REGEXP.test(elm.val());
if( isMatchRegex&& elm.hasClass(''warning'') || elm.val() == ''''){
elm.removeClass(''warning'');
}else if(isMatchRegex == false && !elm.hasClass(''warning'')){
elm.addClass(''warning'');
}
});
}
}
});