Обновление вопроса:. Как я могу запретить вводить все символы, кроме тех, которые указаны в массиве char, в поле ввода, используя AngularJS (или jQuery)?
Старый вопрос:
У меня есть простое поле <input type="text" />
в моем приложении AngularJS, и я хочу, чтобы пользователь мог вводить только следующие символы в поле:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ !\"#$%&'()*+,-./:;<=>[email protected][\\]^_`{|}~
Я знаю, что я могу добавить ng-pattern="allowed"
в <input>
, а затем установить $scope.allowed
в некоторый шаблон регулярного выражения, и это будет означать, что вход недействителен, если введены недопустимые символы, но я также хочу запретить ограниченные символы из вводится в поле AT ALL.
Итак, мой вопрос состоит из двух вопросов:
- Какой шаблон регулярного выражения я использую, чтобы ограничить набор символов указанным выше?
- Как предотвратить ввод запрещенных символов в поле? (например, если вы вводите строчную букву, то она не появится в поле для начала, аналогично, если вы попытаетесь вставить текст, содержащий любые незаконные символы, они будут немедленно удалены)