2016-11-21 6 views
-1

Есть множество локальных ключей хранения, который выглядит как этотКак построить регулярное выражение ж/новый RegExp()

[ 
    '$gl-user', 
    '$gl-date-preference::22' 
    '$gl-date-preference::28' 
    '$gl-mg-filters::22::1' 
    '$gl-mg-filters::22::8' 
] 
  • Первый ::_number_ представляет storeId.
  • Второй ::_number_ может представляет собой любой дополнительный идентификатор.

Попытка построить функцию, которая принимает storeId и возвращает все ключи, которые соответствуют, что storeId. Так что, если 22 был принят в этой функции он будет возвращать

[ 
    '$gl-date-preference::22', 
    '$gl-mg-filters::22::1', 
    '$gl-mg-filters::22::8' 
] 

Вот моя первая попытка. Копирование этого в консоль возвращает null каждый раз, но я не понимаю, почему.

var regex = new RegExp('^[$\w\d\-]+\:\:' + '22'); 
'$gl-mg-filters::22'.match(regex); 

Любая помощь в получении этого регулярного выражения для работы или идеи по лучшему решению были бы весьма полезны. Спасибо!

ответ

0

Ваше регулярное выражение не соответствует, потому что вы только убегаете с косыми чертами внутри строки. Вместо этого, вы должны избежать его дважды, например .:

var regex = new RegExp('^[$\\w\\d\\-]+\\:\\:' + '22'); 
'$gl-mg-filters::22'.match(regex); 

Ваша первая попытка будет пытаться собрать ^[$wd-]+::22 в Regex.

Смежные вопросы