在Javascript中获取Div contenteditable中的第一个链接

时间:2017-04-04 04:23:51

标签: javascript jquery html

我不知道如何获得div中的第一个链接(文本类型)。在我的Div中,我的价值是:

<div id="content" contenteditable="true" value="http://google.com and other string but i only get the link"></div>

我想只获得http://google.com

第二个问题,当值为http://google.com http://yahoo.com时,我只想获得第一个链接http://google.com

我在div contenteditable中使用jquery和keyup事件。希望你能帮帮我,谢谢!

更新我的代码:

$(document).ready(function()
{
  $("#content").keyup(function(){
    var link = $("content").text();
    console.log(link);
  });
}

和html

<div id="content" contenteditable="true"></div>

1 个答案:

答案 0 :(得分:0)

请考虑以下代码:

$(document).ready(function() {
  $("#content").keyup(function(){
    var link = $("#content").text().match(/(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9]\.[^\s]{2,})/i)[1];

    alert(link);
  });
});

我做了一些修正并添加了正则表达式以匹配网址。

DEMO