#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, используйте
или