我正在尝试使用变量创建一个新的RegExp;但是,我不知道sytax这样做。任何帮助都会很棒!
我需要更改此内容:(v.name.search(新RegExp(/ Josh Gonzalez / i))!= -1)将其更改为:(v.name .search(new RegExp(/ q / i))!= -1)。我基本上需要用变量替换“josh”q~var q = $('input [name =“q”]')。val();
感谢您的帮助
$( 'form#search-connections' )
.submit( function( event )
{
event.preventDefault();
var q = $( 'input[name="q"]' ).val();
console.log( _json );
$.each( _json, function(i, v) {
//NEED TO INSERT Q FOR JOSH
if (v.name.search(new RegExp(/Josh Gonzalez/i)) != -1) {
alert(v.name);
return;
}
});
}
);
答案 0 :(得分:8)
像这样:
new RegExp(q + " Gonzalez", "i");
使用/
字符是如何使用RegExp文字语法定义RegExp的。要从字符串创建RegExp,请将该字符串传递给RegExp构造函数。这些是等价的:
var expr = /Josh Gonzalez/i;
var expr = new RegExp("Josh Gonzalez", "i");
你拥有它的方式是将正则表达式传递给正则表达式构造函数......这是多余的。
答案 1 :(得分:1)
您只需要使用字符串添加构建所需的字符串,并将其传递给RegExp构造函数,如下所示:
var q = $( 'input[name="q"]' ).val();
var re = new RegExp(q + " Gonzalez", "i");
if (v.name.search(re) != -1) {
// do your stuff here
}