如何将函数参数传递给正则表达式查询?

问题描述:

我将如何去函数参数传递到正则表达式查询? 非常感谢。如何将函数参数传递给正则表达式查询?

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

match('claire nick steve', 'nick','steve'); 
+0

这是传统的upvote答案。 – SLaks 2010-08-06 10:37:05

你需要一个正常的字符串传递给Regex构造,像这样:

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

如果您在正则表达式中使用了反斜杠,你需要转义(\\),因为这是正常的字符串字面量。

+0

=谢谢你的回应。 – screenm0nkey 2010-08-06 10:31:40

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

您使用的是文字,尝试初始化新的RegExp( “您的字符串”)的对象;

+0

感谢您的回复。 – screenm0nkey 2010-08-06 10:35:32

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'); 
+0

感谢您的回复。 – screenm0nkey 2010-08-06 10:32:03