Ок, спасибо
|
Цитата:
|
Есть массив
var arr = [ "news", "posts/*", "articles/statiy" ] Это разрешённые маски адресов страниц над которыми можно выполнять определённые действия. Я получаю адрес страницы. Например он var adr = 'posts/index.html' Перебираю arr и сравниваю c помощью регулярки
for(key in arr){
var rex = '' // вот тут нужна регулярка. И что бы в том числе 'posts/index.html' попадал в маску "posts/*"
if(adr.match(rex)){...}
}
|
Решил на стороне сервера.
|
ureech,
const escapeRegExp = str => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
const createRegExp = str => {
str = str.split('*');
str = str.map(e => escapeRegExp(e));
str = str.join('[-a-z.0-9_]+');
return new RegExp('^' + str + '$')
};
let arr = ["news", "posts/*", "articles/statiy"];
arr = arr.map(createRegExp);
let adr = 'posts/index.html';
let test = arr.some(reg => reg.test(adr))
alert([adr, test]);
adr = 'posts/проверка.html';
test = arr.some(reg => reg.test(adr));
alert([adr, test])
|
| Часовой пояс GMT +3, время: 04:16. |