我想构建一个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());
        }
    });
}

最佳答案

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


要么

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


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

当然,值得注意的是,如果buscar中没有正则表达式元字符或者我们将其转义,我们将构建一个正则表达式,该正则表达式执行与==运算符完全相同的测试。

顺便说一句,关于这一行没有jQuery。它是香草JavaScript。

10-07 21:36