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

darktowerk56c 08.11.2019 17:26

Как правильно написать регулярное выражение?
 
Подскажите, пожалуйста, как правильно написать следующее регулярное выражение:
Можно ввести любые символы и цифры. Если количество введенных символов и цифр превышает двадцать, то будет ошибка. Если в поле пользователь ввел только пробел(ы) без символов, то будет ошибка. Предполагается, что минимум один символ должен быть введен.
https://regex101.com/
Я написал следующее решение, но не уверен, что оно подходящее:
\S.{0,20}

Триви 11.11.2019 00:54

Сделайте тогда совсем строго:
[a-zA-Zа-яА-Я0-9]{1,20}


Либо:
[\w]{1,20}


Во втором случае в выборку попадёт символ нижнего подчёркивания.

laimas 11.11.2019 05:48

Цитата:

Сообщение от Триви
Во втором случае в выборку попадёт символ нижнего подчёркивания

Во втором случае кириллица отметается, [a-zA-Zа-яА-Я0-9] != \w

Alexandroppolus 11.11.2019 06:48

Цитата:

Сообщение от darktowerk56c
Если в поле пользователь ввел только пробел(ы) без символов, то будет ошибка.

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

Aetae 11.11.2019 07:02

/^(?=.*\S).{1,20}$/


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