【问题标题】:How to fetch website URL from entire text?如何从整个文本中获取网站 URL?
【发布时间】:2011-07-21 04:48:21
【问题描述】:

我想从 asp.net 应用程序中的文本框中获取 url 链接
我输入文本时有 textarea,如果它包含 www.google.comhttp://google.com 之类的链接,那么我想从 textarea 值中获取每个链接或第一个链接。
我如何使用 Jquery 或 Javascript 语言实现。 当我在 textarea 控件中输入单词/文本时,我想获得每个或第一个链接。 在这里,我写了一些代码。

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Test Page </title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript"></script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
     <div class="innerWrap">
       <textarea autocomplete="off" id="txtUpdate" style="height: 48px; width: 408px;" > 
          </textarea>
     </div>
</div>
<script>
$(document).ready(function(){
    $('#txtUpdate').keyup(function() {    
        getURLfromText(jQuery.trim($(this).val()));
    });     
});
function getURLfromText(objTxt)
{
  // code
}
</script>
 </form>
</body>
</html>

请给我正确的解决方案, 也应该是我复制并粘贴一些文本的作品。 怎么可能。?

已编辑

输入

脚踏实地:Tracy Caldwell Dyson www.google.com
在太空呆了近六个月后,
她回到了地面,进行了两次探险
在她的腰带下。 http‍://bit‍.ly/dEpNHo

输出

Array linkarray[]=new Array(); linkarray[0]="www.google.com"; linkarray[1]="http://‍bit.ly/dEpNHo";

【问题讨论】:

  • @corroded 抱歉,我留下了关闭的 div 标签。现在已修复。

标签: jquery jquery-selectors javascript-framework


【解决方案1】:

我在 jsfiddle 上发布了一个简短的示例。我想这就是你要找的东西?包含的 url 的正则表达式可能会接受很多您不想要的值。您可以将其切换为您喜欢的表达方式。

脚本基本上是取textarea的值,在所有空格上分割,然后用正则表达式测试数组的每个值是否是url。

http://jsfiddle.net/UkCPq/1/

HTML:

<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Test Page </title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div class="innerWrap">
                <textarea autocomplete="off" id="txtUpdate" style="height: 48px; width: 408px;" ></textarea>
            </div>
        </form>
        <p>Your urls, sir:</p>
        <ul id="theurls">
            <li>:)</li>
        </ul>
    </body>
</html>

Java脚本:

$(document).ready(function() {
    $('#txtUpdate').keyup(function() {
        getURLfromText($.trim($(this).val()));
    });
});

function getURLfromText(objTxt) {
    var urlpatt = new RegExp(/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi);
    var objArray = objTxt.split(/\s/g);
    $('#theurls').text('');
    $.each(objArray, function(key, value) {
        var result = value.match(urlpatt);
        if (result !== null) {
            $('<li>' + result + '</li>').appendTo('#theurls');
        }
    });
}

【讨论】:

  • 当我添加带有“www.google.com”的网址时,它不起作用请给我带有“www”的网址代码应该可以...
  • 以上代码与abcd.com 链接配合得很好,如果链接类似于 www.abcd.com,它就不起作用。能否提供也适用于“www”扩展名的代码?
  • 我已将正则表达式替换为在我的答案和我的 jsfiddle 中找到的正则表达式:stackoverflow.com/questions/3809401/javascript-url-regex 现在应该给出 'www.google.com', 'abcd.co.uk'等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
  • 1970-01-01
相关资源
最近更新 更多