Обнаружить гиперссылку в тексте - jQuery - PullRequest
1 голос
/ 15 октября 2011

У меня есть простой текст, скажем, "Hello how are you, please visit 'http://google.com'".

Я показываю это в div, используя jQuery (этот текст генерируется случайным образом). У меня вопрос, есть ли способ, которым я могу обнаружить, что "http://google.com" в тексте является гиперссылкой и, таким образом, преобразовать эту часть текста в гиперссылку, активируемую щелчком мыши? *

Спасибо.

Ответы [ 3 ]

3 голосов
/ 15 октября 2011

Если вы используете jQuery, вы должны проверить linkify, который делает это автоматически для вас.

$("#content").linkify();

источник доступен здесь: https://code.google.com/archive/p/jquery-linkify/
и здесь: http://www.dave -smith.info / jquery.linkify / ( зеркало на web.archive.org )

1 голос
/ 15 октября 2011

Это регулярное выражение работает для меня (слегка измененная версия Улучшенный шаблон точного регулярного выражения для соответствующих URL ).

<code>text = text.replace(
         /\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]
         |[a-z0-9.-]+[.][a-z]{2,4}\/)(?:(?:[^\s()<>.]+[.]?)+|((?:[^\s()<>]+
         |(?:([^\s()<>]+)))<em>))+(?:((?:[^\s()<>]+|(?:([^\s()<>]+)))</em>)
         |[^\s`!()[]{};:'".,<>?«»“”‘’]))/gi,
         "<a target=_blank href=$1>$1</a>");
0 голосов
/ 15 октября 2011

Вы можете достичь этого, выполнив:

<?php

// The Regular Expression filter

$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";

// The Text you want to filter for urls

$text = "Hello how are you, please visit http://google.com";

// Check if there is a url in the text

if(preg_match($reg_exUrl, $text, $url)) {

       // make the urls hyper links

       echo preg_replace($reg_exUrl, "<a href="{$url[0]}">{$url[0]}</a> ", $text);

} else {

       // if no urls in the text just return the text

       echo $text;

}
?>

Вот полное руководство: Поиск URL-адресов в тексте и создание ссылок

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...