【问题标题】:Extract urls from string with JavaScript使用 JavaScript 从字符串中提取 url
【发布时间】:2017-02-08 21:51:31
【问题描述】:

我正在开发一个链接预览脚本,例如 fb 使用它。用户创建可能包含链接的帖子。在每次按键时,我都会测试最后一个键是否是空格键,如果是这种情况,我会运行我的函数:

function link_preview(event)
{
    var replyText = $("#answer_two").val();

    if(event.keyCode == 32)
    {
        var match = /^(?:[a-z]*?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/i.exec(replyText);

        if(match!="")
        {

            var preview = match[0];
        }
    }
}

因此,用户键入了包含链接的文本。当检测到链接时,会显示从该 url 获取的信息的预览。用户可以选择关闭此预览并添加另一个链接,这正是我的问题开始的地方。我无法访问第二个 url 并忽略第一个。如果将第三个 url 添加到组合中,所有这一切都会变得更加复杂。 有没有人建议如何工作?

【问题讨论】:

    标签: javascript php html url


    【解决方案1】:

    您是否尝试将全局参数添加到您的正则表达式“g”旁边,然后在您的正则表达式末尾添加“i”,所以它看起来像:

    /^(?:[a-z]*?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/gi

    在这种情况下,您将在需要循环的字符串中获得多个匹配项。

    实际修复参考:http://jsfiddle.net/ps1rf1uw

    【讨论】:

    • 感谢您的回答。我尝试将 g 添加到它,但它给了我相同的结果。
    • 抱歉没有回复你我写了一个快速的jsfiddle控制台从字符串jsfiddle.net/ps1rf1uw中注销一个url
    • 如果你想让我解释其中任何一个,请告诉我@Dennis
    猜你喜欢
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 2011-10-23
    • 1970-01-01
    相关资源
    最近更新 更多