Как получить URL сайта из всего текста? - PullRequest
0 голосов
/ 23 марта 2011

Я хочу получить URL-ссылки из текстового поля в приложении asp.net
У меня есть текстовая область, когда я вводил текст, если он содержит ссылки, такие как www.google.com или http://google.com, тогда я хочу получить каждую ссылку или первую ссылку из значения текстовой области. 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>

Пожалуйста, дайте мне правильное решение для этого. Также должны быть работы, которые я скопировал и вставил текст. Как это возможно .?

Отредактировано

Ввод

Down to Earth: Tracy Caldwell Dyson www.google.com
After spending nearly six months in space, 
she is back on the ground, with two expeditions 
under her belt. http://bit.ly/dEpNHo

Мощно

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

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

Вы должны делать это с помощью регулярных выражений в Javascript. Начните искать здесь, например: Определение URL-адресов в тексте с помощью JavaScript

1 голос
/ 23 марта 2011

Я опубликовал короткий пример на jsfiddle. Я думаю, это то, что вы ищете? Регулярное выражение для включенных URL, вероятно, принимает много значений, которые вам не нужны. Вы можете переключить это для выражения, которое вы предпочитаете.

Сценарий в основном принимает значение текстовой области, разбивает его на все пробелы и затем проверяет каждое значение массива, чтобы определить, является ли оно 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>

Javacript:

$(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');
        }
    });
}
...