HTML проверка формы для номера - PullRequest
0 голосов
/ 25 апреля 2020

Я хочу ввести только 4 цифры между 0001 до 9999, тогда как мне проверить?

Я использовал [0-9]{4}, но он также содержит 0000.

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

Я не думаю, что существует простое регулярное выражение для диапазона от 0001 до 9999.

^(0{3}[1-9]|0{2}[1-9]\d|0[1-9]\d{2}|[1-9]\d{3})$

Мое решение состоит в том, чтобы разделить выражение для каждого градуса.

0{3}[1-9]   = 0001 - 0009
0{2}[1-9]\d = 0010 - 0099
0[1-9]\d{2} = 0100 - 0999
[1-9]\d{3}  = 1000 - 9999

Вы можете играть с этим регулярным выражением онлайн https://regex101.com/r/TjzoEh/1

Использовать pattern атрибут ввода текста для подтверждения вашего регулярного выражения.

<input type="text" pattern="^(0{3}[1-9]|0{2}[1-9]\d|0[1-9]\d{2}|[1-9]\d{3})$" title="Four digits code">

Вдохновлен https://www.regular-expressions.info/numericranges.html

0 голосов
/ 25 апреля 2020

для установки вашей длины, вы должны использовать атрибут maxlength следующим образом:

<input type="text" maxlength="4"/>

, а для проверки типа номера вы можете использовать Регулярные выражения или Number.isInteger ( ) метод.

Для первого способа, вы можете использовать этот шаблон и найти любой не-ди git во входных данных

// Find a non-digit character
let reg = /\D/;

и, наконец, использовать его:

reg.test({{your value}})

Для второго способа необходимо использовать метод eval () в методе Number.isInteger () , например:

Number.isInteger(eval({{ your value }}))

ПРИМЕЧАНИЕ: если вы используете type = "number" во входных данных, для использования не нужно использовать регулярное выражение или какие-либо js методы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...