2017-02-20 85 views
1

我使用正則表達式與圖片URL轉換<a><img>上regex101正則表達式的工作,但不工作於JavaScript

var message='<a href="http://example.com/example.jpg" target="_blank" rel="noopener noreferrer">http://example.com/example.jpg</a>'; 
 
message.replace(/<a.*>(https?:\/\/.*\.(?:png|jpg))<\/a>/gi,'<img src="$1">'); 
 
console.log(message); 
 
//expect: <img src="http://example.com/example.jpg">

work on regex101

回答

3

Replace不改變串它被調用,但返回一個新的字符串。只是更改爲:

var message='<a href="http://example.com/example.jpg" target="_blank" rel="noopener noreferrer">http://example.com/example.jpg</a>'; 
 
message = message.replace(/<a.*>(https?:\/\/.*?\.(?:png|jpg))<\/a>/gi,'<img src="$1">'); 
 
console.log(message); 
 
//expect: <img src="http://example.com/example.jpg">

1

replace不替換原始字符串,它返回一個新字符串,它是replacemet的結果,你必須存儲在一個變量新的字符串和日誌這樣的:

var message='<a href="http://example.com/example.jpg" target="_blank" rel="noopener noreferrer">http://example.com/example.jpg</a>'; 
 

 

 
var result = message.replace(/<a.*>(https?:\/\/.*\.(?:png|jpg))<\/a>/gi,'<img src="$1">'); 
 
console.log(result);

1
var message='<a href="http://example.com/example.jpg" target="_blank"  
    rel="noopener noreferrer">http://example.com/example.jpg</a>'; 
    var newString=message.replace(/<a.*>(https?:\/\/.*\.(?:png|jpg))<\/a>/gi,'<img src=$1">'); 
    alert(newString); 

你需要消耗新的字符串,替換不會重寫。

+1

'new'是一個保留關鍵字!您的代碼無法使用! –

+0

感謝lad,@ibrahimmahrir,編輯:) –

相關問題