如何从变量构建正则表达式

时间:2011-03-01 22:49:30

标签: javascript regex

我想构建一个REGEX,它匹配包含单词的所有结果,该单词位于变量中。 这是我的代码:

function search(buscar){        
    $(".main h2 a").each(function(index) {
        var rege = /^+buscar+$/; //LINE THAT MUST BE CHANGED***
        if(rege.test($(this).text())){
            alert($(this).text());
        }       
    });
}

2 个答案:

答案 0 :(得分:4)

var rege = new RegExp('^' + buscar + '$');

var rege = new RegExp('^' + buscar.replace(/([.?*+^$[\]\\(){}-])/g, '$1') + '$');

如果在buscar中传递正则表达式元字符的可能性,并且您不希望它们如此行事。

当然,值得注意的是,如果buscar中没有正则表达式元字符或者我们正在逃避它们,我们正在构建一个与==运算符执行完全相同的测试的正则表达式。 / p>

顺便提一句,关于这一行没有jQuery;它是vanilla JavaScript。

答案 1 :(得分:0)

var rege = /\bbuscar\b/;

Word boundaries