Распознавание http-ссылок и создание тегов привязки

#jquery #regex #anchor

#jquery #регулярное выражение #привязка

Вопрос:

Я пытаюсь разобрать некоторую строку, и в нее встроены некоторые http-ссылки. Я хотел бы динамически создавать теги привязки внутри этой строки с помощью jquery, а затем отображать их во внешнем интерфейсе, чтобы пользователь мог щелкнуть по ним.

Есть ли способ сделать это?

Спасибо!

Комментарии:

1. Показ примера строки, которую вы хотите разобрать, поможет людям лучше ориентироваться в вас.

Ответ №1:

Вы можете сделать это следующим образом:

 $(function(){
    //get the string
    var str = $("#text").html();
    //create good link matching regexp
    var regex = /(https?://([-w.] ) (:d )?(/([w/_.]*(?S )?)?)?)/g
    // $1 is the found URL in the text
    // str.replace replaces the found url with <a href='THE URL'>THE URL</a>
    var replaced_text = str.replace(regex, "<a href='$1'>$1</a>")
    //replace the contents
    $("#text").html(replaced_text);
});
  

рабочий пример

Комментарии:

1. можете ли вы объяснить мне, что это значит?

2. вот почему я написал комментарии, что именно вы не понимаете?

3. Просто попытайтесь понять, что означает это утверждение regex = /(https?://([-w.] ) (:d )?(/([w/_.]*(?S )?)?)?)/g . Это кажется очень загадочным. Также, когда вы говорите $("#text").html(str.replace(regex, "<a href='$1'>$1</a>"));

4. regex = ... это регулярное выражение для поиска ссылок в строке

5. Я отредактировал функцию и надеюсь, что теперь ее будет легче понять.

Ответ №2:

@cfarm, вы можете использовать URL-адреса и создавать HTML по своему усмотрению.

проанализируйте строку и начните создавать URL-адреса, а также сохраните место для заполнения в вашем Html, используйте

http://api.jquery.com/html/

или

http://api.jquery.com/append/