Если вы делаете это в веб-обозрении, почему бы вам не пойти дальше и не использовать javascript?Я сделал это в проекте, где ссылки должны были быть найдены автоматически.Я не мог зависеть от детектора данных веб-просмотра, поэтому помог короткий javascript:
someTweet.replace(
/(\b(https?):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,
"<a href='$1'>$1</a>"
)
Регулярное выражение простое и может не улавливать каждый URL, но оно выполняло большую часть времени.Перенос этого в имена пользователей и хэштеги не должен быть слишком сложным.
имена пользователей состоят из символов, цифр и _, поэтому @ ([1-9a-zA-Z _] +) будет соответствовать.
someTweet.replace(
/@([1-9a-zA-Z_]+)/,
"<a href='http://twitter.com/$1'>@$1</a>")
)
хэштеги , я не уверен в этом: я предполагаю, что они что-то начинаются с # и заканчиваются пробелами, # или @, но это только предположение.# ([^ \ s # @] *) может работать.
someTweet.replace(
/#([^\s#@]*)/,
"<a href='http://twitter.com/search?q=%23$1'>#$1</a>"
)