Использование RegExp для динамического создания регулярного выражения и фильтрации содержимого
Я борюсь с использованием объекта RegExp
, чтобы позволить мне динамически создавать выражение и применять его к группе элементов.
Вот jsFiddle, ниже приведен код:
<div id='selectors'><span>A-F</span><span>G-L</span><span>M-S</span><span>T-Z</span></div>
<a hreh=#>Astring</a>
<a hreh=#>Cstring</a>
<a hreh=#>Xstring</a>
<a hreh=#>Dstring</a>
<a hreh=#>Zstring</a>
$('div#selectors span').click(function(){
expression = "/^["+$(this).html()+"].*$/";
rx = RegExp(expression,'i');
console.log(rx,'expression');
$("a").each(function(){
if($(this).html().match(rx) !== null){
$(this).addClass('selected');
}
});
})
Ответы
Ответ 1
JavaScript автоматически добавляет "/" в конце и в начале выражения. Удалите их из своей строки, Пример здесь
$('div#selectors span').click(function () {
var expression = "^[" + $(this).html() + "].*$";
var rx = new RegExp(expression, 'i');
console.log(rx, 'expression');
$("a").each(function () {
if ($(this).html().match(rx) !== null) {
$(this).addClass('selected');
}
});
});