将网址与尾部斜杠匹配

时间:2017-09-08 13:28:26

标签: javascript regex

你好,在一个项目中,我们有以下代码来搜索网址&发送电子邮件并用链接替换它们。这项工作很棒,但它与

等网址不匹配
  

https://www.example.com/

有一个斜杠。

API.prototype.replaceURLS = function(str) {

    var patterns = [
        "\\b((?:https?|ftp)://[^\\s\"'<>]?/+)\\b",
        "\\b(www\\.[^\\s\"'<>]?/+)\\b",
        "\\b(\\w[\\w.+-]*@[\\w.-]+\\.[a-z]{2,6})\\b"
    ];

    var reg = new RegExp(patterns.join('|'), "gi");

    return str.replace(reg, function(match, url, www, mail) {

        if (url) {
            return "<a target='_blank' href=\"" + url + "\">" + url + "</a>";
        }

        if (www) {
            return "<a target='_blank' href=\"http://" + www + "\">" + www + "</a>";
        }

        if (mail) {
            return "<a href=\"mailto:" + mail + "\">" + mail + "</a>";
        }

        // just in case...
        return match;

    });

};

正则表达式:

\b((?:https?|ftp):\/\/[^\s"'<>]+)\b|\b(www\.[^\s"'<>]+)\b|\b(\w[\w.+-]*@[\w.-]+\.[a-z]{2,6})\b

1 个答案:

答案 0 :(得分:0)

好吧,我最终删除了所有\b标志,并且工作正常