替换除锚标记Javascript Regex之外的URL

时间:2014-11-06 18:20:19

标签: javascript jquery regex

我使用JavaScript / jQuery Regex替换URL。它工作得很完美,但我不想替换锚标签中的URL。 我目前的代码:

function urlify(text) {
    var urlRegex = /^(!href=")\w(((\b(https?|ftp|file):\/\/)|(www\.))[^\s]+)/g;
    //var urlRegex = /(https?:\/\/[^\s]+)/g;
    return text.replace(urlRegex, function (url, b, c) {
        var url2 = (c == 'www.') ? 'http://' + url : url;
        return '<a href="' + url2 + '" target="_blank">' + url + '</a>';
    })
}

str='http://www.google.com and <a href="www.yahoo.com">Yahoo</a>';
urlify(str);

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以通过执行以下操作轻松获取文本减去锚标记:

str='http://www.google.com and <a href="www.yahoo.com">Yahoo</a>';

var e = document.createElement("div");
e.innerHTML = str;

alert(e.innerText);

现在,您可以使用正则表达式来识别网址并将其替换为原始文本。