我有以下 JavaScript,它匹配 URLS 并将其替换为 html 链接,但是我需要它来排除以 .png|.jpg|.jpeg|.gif 结尾的 URL
text = text.replace(
/(\b(?:https?|ftp):\/\/[a-z0-9-+&@#\/%?=~_|!:,.;]*[a-z0-9-+&@#\/%=~_|])/gim,
'<a href="$1" class="autolink" target="_blank">$1</a>'
);
最佳答案
你可以先测试一下:
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>');
}
});
关于不是图像扩展名的 Javascript 正则表达式 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7591738/