2010-01-29 3 views
0

을 (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); 

PHP

에 다음과 같은 정규 표현식을 가지고있다. 내가이 자바 스크립트로 변환 할 수있는 방법

search = new RegExp(regex); 

처럼 뭔가 매개 변수를 사용하는 방법을 알아낼 수 없습니다?

답변

0

PHP 정규식에서 e 수식어를 사용하고 있지 않습니다.

다음 자바 스크립트는 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'); 
1

/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; 
}); 

된다. (그러나 다시, PHP 코드에서 /e 플래그를 사용하지 않았습니다.)