Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как правильно написать регулярное выражение (буквы, цифры и дефис)? (https://javascript.ru/forum/dom-window/81184-kak-pravilno-napisat-regulyarnoe-vyrazhenie-bukvy-cifry-i-defis.html)

dc65k 16.10.2020 06:11

Как правильно написать регулярное выражение (буквы, цифры и дефис)?
 
Всем привет. Подскажите, пожалуйста, как написать регулярное выражение, чтобы в случае, если клиент ввел в поле что-то кроме букв, цифр и дефисов, то поле не проходило бы валидацию.

laimas 16.10.2020 06:30

Цитата:

Сообщение от dc65k
кроме букв

Какого алфавита?

dc65k 16.10.2020 08:03

Ожидаемое поведение:
Тест, Test, Тест1, Test2 буде проходить валидацию.
Тест), Test?, Тест1#, Test2@, Тест^% - не будут

laimas 16.10.2020 08:12

Если английские, то шаблон /[a-z\d-]+/i разрешает описанное.

voraa 16.10.2020 08:18

/[a-zA-Zа-яёА-ЯЁ\d-]+/

laimas 16.10.2020 08:21

voraa,
а почему не /[a-zа-яё\d-]+/i

PS. А я тоже забыл + )

voraa 16.10.2020 08:27

А i действует на кириллицу?
Я просто не знаю, поэтому пишу наверняка.

laimas 16.10.2020 08:37

Цитата:

Сообщение от voraa
А i действует на кириллицу?

Да. Но вроде бы я спросил о языке, и в ответе о русском ни слова, хотя ...

dc65k 16.10.2020 08:51

Спасибо.

voraa 16.10.2020 08:51

Цитата:

Сообщение от laimas
Но вроде бы я спросил о языке, и в ответе о русском ни слова

Надо забыть про всякое старье типа ИЕ
и писать
/[\p{L}\p{Nd}\p{Pd}]+/u


Часовой пояс GMT +3, время: 12:01.