Javascript RegExp:使用变量创建正则表达式

可能重复:
Javascript Regexp动态生成?

我正在尝试使用变量创建一个新的RegExp; 但是,我不知道这样做的sytax。 任何帮助都会很棒!

我需要改变这个:( v.name.search(new RegExp(/ Josh Gonzalez / i))!= -1)将其更改为: (v.name.search(new RegExp(/ q / i))! = -1) 。 我基本上需要用变量q~var q = $(’input [name =“q”]’).val();来替换“josh”

谢谢您的帮助

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

像这样:

 new RegExp(q + " Gonzalez", "i"); 

使用/ characters是如何使用RegExp文字语法定义RegExp。 要从字符串创建RegExp,请将该字符串传递给RegExp构造函数。 这些是等价的:

 var expr = /Josh Gonzalez/i; var expr = new RegExp("Josh Gonzalez", "i"); 

你拥有它的方式是将正则表达式传递给正则表达式构造函数……它是多余的。

您只需要使用字符串添加构建所需的字符串,并将其传递给RegExp构造函数,如下所示:

 var q = $( 'input[name="q"]' ).val(); var re = new RegExp(q + " Gonzalez", "i"); if (v.name.search(re) != -1) { // do your stuff here }