不是图像扩展名的Javascript正则表达式url

Javascript regex urls that are not image extensions

本文关键字:Javascript 正则表达式 url 扩展名 图像      更新时间:2023-09-26

我有以下JavaScript匹配并替换url与html链接,但我需要这来排除url以。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>'
        );

您可以在此之前进行测试:

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