在javascript中以正则表达式传递变量以进行字符串匹配

use*_*514 2 javascript regex string match

假设我需要在javascript中使用字符串匹配来获得与LIKE运算符等效的结果.

WHERE "str1" LIKE '%str2%';
Run Code Online (Sandbox Code Playgroud)

以下匹配表达式有效.

var str1="abcd/pqrst"; 
var str2 =  "pqr";

if(str1.match(/^.*pqr.*/)){ //do something};
Run Code Online (Sandbox Code Playgroud)

但我需要传递一个变量而不是pqr,类似于下面的语句.请帮助.

//Wrong
var re = new RegExp("/^.*"+ str2 + ".*/"); 
if(str1.match(re){ //do something}
Run Code Online (Sandbox Code Playgroud)

Jas*_*hal 6

这是一个快速的jsFiddle供您尝试

http://jsfiddle.net/jaschahal/kStTc/

var re = new RegExp("^.*"+str2+".*","gi"); 
// second param take flags
Run Code Online (Sandbox Code Playgroud)

更多细节在这里

http://www.w3schools.com/jsref/jsref_obj_regexp.asp

您还可以使用contains()/ indexOf()函数进行这些简单检查