我有以下JavaScript匹配并用HTML链接替换URLS,但我需要这个以排除以.png | .jpg | .jpeg | .gif结尾的网址.gif
text = text.replace(
/(\b(?:https?|ftp):\/\/[a-z0-9-+&@#\/%?=~_|!:,.;]*[a-z0-9-+&@#\/%=~_|])/gim,
'<a href="$1" class="autolink" target="_blank">$1</a>'
);
答案 0 :(得分:4)
你可以在之前进行测试:
if (!text.match(/\.(png|jpg|jpeg|gif)$/) {
text = text.replace(
/(\b(?:https?|ftp):\/\/[a-z0-9-+&@#\/%?=~_|!:,.;]*[a-z0-9-+&@#\/%=~_|])/gim,
'<a href="$1" class="autolink" target="_blank">$1</a>'
);
}
如果您需要进行多次替换,那么您可以使用自定义替换功能来检查匹配图像结尾并相应地执行操作。这将是这样的:
var imageRegex = /\.(png|jpg|jpeg|gif)$/;
text = text.replace(/(\b(?:https?|ftp):\/\/[a-z0-9-+&@#\/%?=~_|!:,.;]*[a-z0-9-+&@#\/%=~_|])/gim,
function(str) {
if (str.match(imageRegex)) {
return(str);
} else {
return('<a href="' + str + '" class="autolink" target="_blank">' + str + '</a>');
}
});