|
|

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

04.04.2023, 09:20
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,155
|
|
ureech,
let reg = /news\/(sub\/)?[-a-z.0-9_]/;
let arr = ['news/-', 'news/sub/_','news/.','news/?'].map(e => reg.test(e));
alert(arr);
|
|

04.04.2023, 09:28
|
 |
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,782
|
|
|
Сообщение от ureech
|
|
[a-z], _,[0-9],.,-
|
Только один символ или последовательность?
Для последовательности так
/^news\/(sub\/)?[a-z_0-9.\-]+$/
|
|

04.04.2023, 09:34
|
|
Профессор
|
|
Регистрация: 11.03.2013
Сообщений: 792
|
|
|
Нет. Изначальная строка не такая /news\/(sub\/)?[-a-z.0-9_]/, а такая [a-z]/* и нужно сказать, что #\*# это [-a-z.0-9_]
|
|

04.04.2023, 09:38
|
|
Профессор
|
|
Регистрация: 11.03.2013
Сообщений: 792
|
|
|
И да * это последовательность [-a-z.0-9_]
|
|

04.04.2023, 09:44
|
|
Профессор
|
|
Регистрация: 11.03.2013
Сообщений: 792
|
|
|
То есть маска такая news/*.
location.pathname = 'news/sub/index.html' или 'news/sub/' или ...
И нужно что бы при сравнении'news/*' == location.pathname
|
|

04.04.2023, 09:49
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,155
|
|
|
ureech,
слишком много слов, не осилил)))
|
|

04.04.2023, 09:52
|
|
Профессор
|
|
Регистрация: 11.03.2013
Сообщений: 792
|
|
Сообщение от рони
|
ureech,
слишком много слов, не осилил)))
|

|
|

04.04.2023, 09:53
|
|
Профессор
|
|
Регистрация: 11.03.2013
Сообщений: 792
|
|
|
Мне нужна регулярка, которая скажет, что
'#\*#' == '#[a-z_0-9.\-]+#';
Последний раз редактировалось ureech, 04.04.2023 в 09:56.
|
|

04.04.2023, 10:01
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,155
|
|
|
ureech,
не понимаю, всё что мог, написал выше.
|
|
|
|