Хотите знать, как ограничить поле ввода только числом?
Иногда вы применяете <input type="number">
и заканчиваете мыслью о том, чтобы решить эту проблему, но это не так.
Вы можете увидеть странное поведение поля ввода с type = ”number”. Изначально, когда вы начинаете писать в поле, вам не нужно будет вводить символы a, b, e или что-то еще, но когда вы пишете так, как 123eeww, он принимает, потому что становится экспоненциальным значением.
Возвращаясь к основы, на которые мы обычно не обращаем внимания, всегда имеют ответ.
Номер типа принимает только числа с плавающей запятой и символ e или E после числа (которые представляют экспоненты, если используются после числа, такого как 123ee). Что теперь?
Чтобы избежать таких случаев и строго реализовать только числовой тип, мы должны создать настраиваемую директиву, которая может быть даже полезна на уровне приложения. Ниже приведен фрагмент:
Пояснение:
Как вы можете видеть выше,
Шаг 1: событие onKeyPress, мы проверяем введенный символ, если он соответствует заданному регулярному выражению '^ [0–9] + $', if not input не будет принимать этот символ
Шаг 2: что, если кто-то скопирует и вставит данные? Чтобы избежать такого сценария, мы также можем ограничить событие вставки, чтобы оно принимает только числовой формат и заменяет остальные нечисловые символы на ''.
Как подать заявку?
Просто зайдите в свой html и добавьте в поле селектор директивы: <input type="number" numbersOnly>
Как ограничить использование только специальных символов в поле ввода?
Единственное, что вам нужно изменить, это регулярное выражение:
regexStr = ‘^ [a-zA-Z0–9 _] * $’
Используйте код, описанный выше, и измените регулярное выражение, у вас будет поле ввода ограниченных специальных символов.
Что делать, если вы хотите настроить регулярное выражение в соответствии с вашими потребностями
Предположим, я хочу разрешить использование символов «-», «#» только в качестве специальных символов и ограничить остальные.
^ [a-zA-Z0–9 _- #] * $: Просто продолжайте добавлять их в конце регулярного выражения, и это будет работать как шарм.