Я использую regex/^ [0-9] + $ /, чтобы ограничить ввод текстового поля, чтобы принимать только числа. Он работает нормально, но когда типы что-то вроде +124, то также он не устанавливает текстовое поле как недействительное.ng-pattern допускает символ «+», когда ограничения регулярных выражений равны цифрам
<form name="myForm" novalidate>
<input type="number" ng-model="age" name="age" ng-pattern="/^[0-9]+$/" />
<h3>Valid Status : {{myForm.age.$valid}}</h3>
</form>
Вход: 123 Выход: myForm.age $ действительно - истинный
Вход:. -123 Вывод: myForm.age $ действительно - ложь
Вход:. +123 Выход: Myform. . возраст $ действительно - правда (не должно быть правдой)
https://plnkr.co/edit/3OVE6qiWgJozUb3hyFQ5?p=preview
Используйте 'тип = "текст"' –
@ WiktorStribiżew Почему она не может работать с типом = "число" ?? С type = "text" браузеры позволяют пользователям вводить произвольные символы. – vinnu313
Ну, регулярные выражения работают с * string * input, двигатели регулярных выражений не допускают ввода каких-либо других * типов *. Таким образом, только «пароль», «текст» обычно являются допустимыми типами, которые будут работать с регулярным выражением. –