开发者

Using RegExp to dynamically create a Regular Expression, and filter content

I am struggling with using the RegExp object to allow me to dynamically create an expression, and apply it to a group of elements.

Here is a jsFiddle, below is the code:

<div id='selectors'><span>A-F</span><span>G-L</span><span>M-S</span><sp开发者_JAVA技巧an>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');
                    }
        });

    })


JavaScript automatically adds "/" at the end and the beginning of the expression. Remove them from your string, Example Here

$('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');
        }
    });

});
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜