Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверка по маске (https://javascript.ru/forum/misc/85090-proverka-po-maske.html)

ureech 04.04.2023 08:26

Проверка по маске
 
Привет. Нужна помощь по регулярке. У меня есть location.pathname и мне надо сравнить его с маской такого вида
news/* или news/sub/* и тп. То есть если последний символ *, значит вместо неё могут быть [a-z], _,[0-9],.,-. Как это сказать системе?

рони 04.04.2023 09:20

ureech,
let reg = /news\/(sub\/)?[-a-z.0-9_]/;
let arr = ['news/-', 'news/sub/_','news/.','news/?'].map(e => reg.test(e));
alert(arr);

voraa 04.04.2023 09:28

Цитата:

Сообщение от ureech
[a-z], _,[0-9],.,-

Только один символ или последовательность?
Для последовательности так
/^news\/(sub\/)?[a-z_0-9.\-]+$/

ureech 04.04.2023 09:34

Нет. Изначальная строка не такая /news\/(sub\/)?[-a-z.0-9_]/, а такая [a-z]/* и нужно сказать, что #\*# это [-a-z.0-9_]

ureech 04.04.2023 09:38

И да * это последовательность [-a-z.0-9_]

ureech 04.04.2023 09:44

То есть маска такая news/*.
location.pathname = 'news/sub/index.html' или 'news/sub/' или ...
И нужно что бы при сравнении'news/*' == location.pathname

рони 04.04.2023 09:49

ureech,
слишком много слов, не осилил)))

ureech 04.04.2023 09:52

Цитата:

Сообщение от рони (Сообщение 551382)
ureech,
слишком много слов, не осилил)))

:lol:

ureech 04.04.2023 09:53

Мне нужна регулярка, которая скажет, что

'#\*#' == '#[a-z_0-9.\-]+#';

рони 04.04.2023 10:01

ureech,
не понимаю, всё что мог, написал выше.


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