2015-12-23 12 views
11

Używam ng-pattern do sprawdzania TYLKO liczb w moim wprowadzeniu. Ale dla mnie to nie działa. Mogę wpisać characters po number. Jak mogę to ograniczyć?`ng-pattern` - jak sprawdzić tylko liczby?

tutaj jest mój kod:

<div ng-app ng-controller="formCtrl"> 
<form name="myForm" ng-submit="onSubmit()"> 
    <input type="text" ng-model="price" name="price_field" ng-pattern="/^[0-9]/" required> 
    <span ng-show="myForm.price_field.$error.pattern">Not a valid number!</span> 
    <input type="submit" value="submit"/> 
</form> 
</div> 

Live Demo

+0

do akceptowania tylko numer w polu tekstowym myślę lepiej możesz użyć type = "number" w tagu wejściowym. –

+0

możesz odnieść się do tego wątku: http://stackoverflow.com/questions/19827570/validate-natural-input-number-with-ngpattern – Shivi

Odpowiedz

20

Użycie tego wyrażenia

ng-pattern="/^[0-9]*$/" 

UPDATE:

dla akceptując tylko znaki, można użyć takiego.

ng-pattern="/^[a-zA-Z]*$/" 
+0

Ok. do akceptowania znaków można użyć 'ng-pattern ="/^ [a-z] [A-Z] * $/"' -? – user2024080

+0

Jaki jest dokładny wymóg? –

+0

musi tylko dopuszczać znaki (pole nazwy) – user2024080

4

Spróbuj regex: Powinien działać /^[0-9]+$/ + znak jest za przyjęcie jednego lub więcej cyfr.

2

ng-pattern="/^[0-9]*$/" // zmiana

ng-pattern="/^\d{1,10}$/" 

UWAGA: „\ d” można sprawdzić nie tylko 0-9, także dla wielu cyfr jak grecki cyfr

+0

dlaczego chcesz to zmienić? jaka jest korzyść z tego podejścia? – user2024080

Powiązane problemy