Javascript RegExp:使用变量创建正则表达式 [英] Javascript RegExp: Create regex with variable
问题描述
可能重复:
Javascript Regexp动态生成?
我正在尝试创建一个新的带有变量的RegExp;但是,我不知道sytax这样做。任何帮助都会很棒!
I am trying to create a new RegExp with a variable; however, I do not know the sytax to do this. Any help would be great!
我需要改变这个:(v.name.search(new RegExp(/ Josh Gonzalez / i))!= - 1)将其更改为:(v.name.search(new RegExp(/ q / i))!= -1)。我基本上需要用变量替换joshq~var q = $('input [name =q]')。val();
I need to change this: (v.name.search(new RegExp(/Josh Gonzalez/i)) != -1) change it to this: (v.name.search(new RegExp(/q/i)) != -1). I basically need to replace the "josh" with the variable 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;
}
});
}
);
推荐答案
如下所示:
new RegExp(q + " Gonzalez", "i");
使用 /
字符是如何定义的带有RegExp文字语法的RegExp。要从字符串创建RegExp,请将该字符串传递给RegExp构造函数。这些是等价的:
Using the /
characters is how to define a RegExp with RegExp literal syntax. To create a RegExp from a string, pass the string to the RegExp constructor. These are equivalent:
var expr = /Josh Gonzalez/i;
var expr = new RegExp("Josh Gonzalez", "i");
你的方式是将正则表达式传递给正则表达式构造函数...它是多余的。
The way you have it you are passing a regular expression to the regular expression constructor... it's redundant.
这篇关于Javascript RegExp:使用变量创建正则表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!