TGViewer
Frontend&Travel Frontend&Travel @code_and_travel · 1.18K subscribers
Post #182 1.98K
​Как валидировать форму на js?

Как сделать так, чтобы пользователь мог вводить только цифры в поле с паспортом? А только буквы русского алфавита в поле “Имя”? Для этого существует метод regexp.

Например, создадим переменную myDream.

let myDream = "Я хочу научиться программировать"

/хочу/.test(myDream);
возвращает нам true, потому что слово “хочу” в фразе "Я хочу научиться программировать" есть.

А выражение:

/играть на барабане/.test(myDream); возвращает false, т.к. фразы “играть на барабане” в myDream нет.

Однако, мы можем искать не только слова, но и цифры. Для этого используется запись \d.

/\d/.test('1234') говорит нам о том, есть ли в записи хотя бы одно число.

Кстати, можно использовать более человеко читаемую форму, которая выглядит как:

/[0-9]/.test(’1234’)

Перейдем к более практичным примерам. Предположим, что нам нужна валидация на поле возраста, где пользователь может ввести одну или две цифры. Выглядеть она будет так:

/^[0-9]{1,2}$/.test('12')

^
- сигнализирует о начале строки. Мы начинаем искать выражение не с середины, ни с конца, а с начала.

$ - сигнализирует о конце строки. Мы заканчиваем искать выражение не после первого найденного, а идем до конца строки полностью.

[0-9] - это мы знаем. Ищем цифры от 0 до 9.

{1,2} - интересует, чтобы пользователь ввел 1 или 2 символа. Так, строка из трех символов “123” уже не подойдет.

Интерес представляет regexp, когда пользователь может вводить только русские символы. Выглядеть это будет:

/^[А-ЯЁа-яё]+$/.test('Елена')

А если только латинские (например, фамилия в загранпаспорте):

/^[a-zA-Z]+$/.test(‘Fedorova’)

Бывает, что интересуют латинские символы, цифры и пробел:

/^[A-Za-z0-9\s]+$/.test('apartment 15')

В общем, логика ясна. Прочитать подробнее про regexp на английском можно здесь, на русском - здесь, а попрактиковаться онлайн тут.

Про regexp я заговорила потому, что попалось задание:

- вернуть true, если фраза содержит все буквы латинского алфавита хотя бы по 1 разу ("The quick brown fox jumps over the lazy dog");
- вернуть false в противном случае.

Попробуйте выполнить его и вы, когда закончите все остальное.
More from @code_and_travel
  1. Oct 15, 2026Как вы, чувствуйте, что мир ускорился? Из-за ИИ. У меня двоякое чувство. С одной стороны,…
  2. Oct 9, 2026Сходила недавно на встречу комьюнити Билдеров в Москве. Это те, что делают Chrome-расширен…
  3. Oct 7, 2026Когда-то давно, в начале года, я рассматривала 4 направления для иммиграции. Среди них был…
  4. Sep 14, 2026​Попробовала модель Astra от ChatGPT. Точнее, как попробовала: почти научилась работать с…
  5. Sep 7, 2026Почему так долго нет статей?) Потому что то, что интересно сказать, не скажешь (из-за поли…
  6. Jul 6, 2026Все же помнят, что у меня удаляли Pixel Measurement 2 месяца назад? Кажется, причина прояс…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →