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