我使用正则表达式转换<a>
,图片网址为<img>
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">
答案 0 :(得分: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">
&#13;
答案 1 :(得分:1)
replace
不替换原始字符串,它返回一个替换结果的新字符串,您必须将该新字符串存储在变量中并将其记录如下:
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);
答案 2 :(得分:1)
typeof
您需要使用新字符串,替换不会重写。