views:

37

answers:

3

How would I go about passing function parameters into a regex query? Many thanks.

function match(str, arg1, arg2){
   var result = str.match(/(arg1 | arg2)/m);
   log(result) //null
}

match('claire nick steve', 'nick','steve');
+1  A: 

http://www.regular-expressions.info/javascript.html

you are using a literal, try initializing the object with new RegExp("your string");

Alexander
@Alexander - Thanks for the response.
Nick Lowman
A: 

You need to pass a normal string to the Regex constructor, like this:

var result = str.match(new Regex("(" + arg1 + "|" + arg2 + ")", "m");

If you use backslashes in the regex, you'll need to escape them (\\) since it's normal string literal.

SLaks
@SLaks = Thanks for the response.
Nick Lowman
A: 
function match(str, arg1, arg2){
   var re=new RegExp("(" + arg1 + "|" + arg2 +")","m");
   var result = str.match(re);
   log(result) //null
}

match('claire nick steve', 'nick','steve');
Zimbabao
@Zimbabao - Thanks for the response.
Nick Lowman