javascript中的e-modifier?(将正则表达式从php转换为js)

javascript中的e-modifier?(将正则表达式从php转换为js),javascript,regex,parameters,Javascript,Regex,Parameters,我有以下PHP正则表达式 $url = 'http://www.amazon.com/dp/B002JCSBE4/ref=sr_1_1?ie=UTF8&s=tv&qid=1264738369&sr=1-1/'; $url=preg_replace( '/http:\/\/[^>]*?amazon.(.*)\/([^>]*?ASIN|gp\/product|exec\/obidos\/tg\/detail\/-|[^>]*?dp)\/([0-9a-zA-Z]{10})[a-zA-Z0-9#\/\

我有以下PHP正则表达式


$url = 'http://www.amazon.com/dp/B002JCSBE4/ref=sr_1_1?ie=UTF8&s=tv&qid=1264738369&sr=1-1/';
$url=preg_replace(
'/http:\/\/[^>]*?amazon.(.*)\/([^>]*?ASIN|gp\/product|exec\/obidos\/tg\/detail\/-|[^>]*?dp)\/([0-9a-zA-Z]{10})[a-zA-Z0-9#\/\*\-\?\&\%\=\,\._;]*/i',
'http://www.amazon.$1/dp/$3/?tag='.'someone-20',$url );
我正在尝试做同样的事情,只是用javascript。 我不知道如何将参数与以下内容一起使用

search = new RegExp(regex);

如何将其转换为Javascript?

您没有在PHP正则表达式中使用
e
修饰符

以下JavaScript应与您的PHP执行相同的操作:

var url = 'http://www.amazon.com/dp/B002JCSBE4/ref=sr_1_1?ie=UTF8&s=tv&qid=1264738369&sr=1-1/';
var amazon_re = /http:\/\/[^>]*?amazon.(.*)\/([^>]*?ASIN|gp\/product|exec\/obidos\/tg\/detail\/-|[^>]*?dp)\/([0-9a-zA-Z]{10})[a-zA-Z0-9#\/\*\-\?\&\%\=\,\._;]*/i;
url = url.replace(amazon_re, 'http://www.amazon.$1/dp/$3/?tag=someone-20');

/e
修饰符用于执行代码。在Javascript中,您可以通过传递函数来实现这一点

例如:

preg_replace("/(<\/?)(\w+)([^>]*>)/e", 
         "'\\1'.strtoupper('\\2').'\\3'", 
         $html_body);
preg_replace(“/(]*>)/e”,
“'\\1'.strtoupper('\\2'.'\\3'”,
$html(正文);;
变成

html_body.replace(/(<\/?)(\w+)([^>]*>)/, function(s, x1, x2, x3) {
  return x1 + x2.toUpperCase() + x3;
});
html_body.replace(/(]*>)/,函数(s,x1,x2,x3){
返回x1+x2.toUpperCase()+x3;
});
在Javascript中。(但同样,您没有在PHP代码中使用
/e
标志。)