valide o número de input natural com ngpattern

Eu uso ng-pattern="/0-9/" para definir price_field não aceitar o decimal number . Mas quando eu insiro um número natural (de 0 a 9999999), o ng-show é ativado com o Not valid number! .

Onde foi que eu errei?. Por favor ajude.

  <input type="number" name="price_field" data-ng-model="price" require ng-pattern="/0-9/" Not valid number!   

O problema é que seu padrão REGX corresponderá apenas à input “0-9”.

Para atender às suas necessidades (0-9999999), você deve rewrite seu padrão regx:

 ng-pattern="/^[0-9]{1,7}$/" 

Meu exemplo:

HTML:

 
Not a valid number! This field is required!

JS:

 function formCtrl($scope){ $scope.onSubmit = function(){ alert("form submitted"); } } 

Aqui está uma demonstração do jsFiddle .

Isso está funcionando

 
Not valid number!
   Phone is required. 

o seguinte código ajudará na validação do número de telefone e a diretiva respeitada é

 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'); } }); } } });