Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 04.04.2023, 10:04
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Ок, спасибо
Ответить с цитированием
  #12 (permalink)  
Старый 04.04.2023, 10:39
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Сообщение от ureech
То есть маска такая news/*.
Что бы начиналась с news/ а дальше что угодно?
Ответить с цитированием
  #13 (permalink)  
Старый 04.04.2023, 12:37
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Есть массив
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)){...}
}
Ответить с цитированием
  #14 (permalink)  
Старый 04.04.2023, 16:05
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Решил на стороне сервера.
Ответить с цитированием
  #15 (permalink)  
Старый 04.04.2023, 16:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

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])
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дополнительная проверка в маске телефона на семерку TrueLie Общие вопросы Javascript 3 07.02.2020 18:21
Проверка на существование элемента в реальном времени js dkmrus Общие вопросы Javascript 7 03.05.2016 22:12
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 01:00
Проверка данных формы составным условием? myafa Элементы интерфейса 8 01.04.2011 08:30
Проверка полей отправляемой формы. denisOgr jQuery 6 18.10.2010 19:40