繁体   English   中英

JavaScript中的电子修饰符? (将正则表达式从php转换为js)

[英]e-modifier in javascript? (converting regex from php to js)

我在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?

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

例如:

preg_replace("/(<\/?)(\w+)([^>]*>)/e", 
         "'\\1'.strtoupper('\\2').'\\3'", 
         $html_body);

变成

html_body.replace(/(<\/?)(\w+)([^>]*>)/, function(s, x1, x2, x3) {
  return x1 + x2.toUpperCase() + x3;
});

在Javascript中。 (但是同样,您没有在该PHP代码中使用/e标志。)

您没有在该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');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM