Я нашел этот JS скрипта здесь на так, что кажется, как он будет работать отлично подходит для обнаружения как обычных ссылок и Twitter #hashtags и @usernames:Javascript Regex для Удаления Http: // и https: // из текста
function processTweetLinks(text) {
text = text.replace();
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i;
text = text.replace(exp, "<a href='$1' target='_blank'>$1</a>");
exp = /(^|\s)#(\w+)/g;
text = text.replace(exp, "$1<a href='http://search.twitter.com/search?q=%23$2' target='_blank'>#$2</a>");
exp = /(^|\s)@(\w+)/g;
text = text.replace(exp, "$1<a href='http://www.twitter.com/$2' target='_blank'>@$2</a>");
console.log(text);
}
НО ... Первое выражение не совсем соответствует моим потребностям ... Когда он получает что-то вроде http://google.com
, он выводит <a href='http://google.com' target='_blank'>http://google.com</a>
. Я хочу, чтобы он выводил <a href='http://google.com' target='_blank'>google.com</a>
вместо этого - в основном удалял http://
или https://
изнутри якорных меток. Я не знаю регулярное выражение - что бы функция должна была выглядеть, чтобы вывести это?
UPDATE: Я получил функцию, исправленную с ответом @ BrunoFinelli, который отлично работает, но я не знаю, как исправить несколько ссылок в заданной строке/сообщении. Прямо сейчас он исправляет только каждый раз, когда я вызываю функцию ... Если кто-то может настроить функцию, чтобы исправить это, что было бы очень признательно! Благодаря! Было бы также неплохо, если бы первое регулярное выражение (тот, о котором идет речь) удалил www.
, а также изнутри привязанных тегов? Но на самом деле мне просто нужно знать, как это повторить через твит, который может иметь более одного ссылки/упоминания/хэштег. Благодаря!
Только что попробовал, и она работала правильно ... 'processTweetLinks ('HTTP : //google.com ') 'yields' google.com ' –
Да, это прекрасно! Ничего страшного в том, что мои новички не видят! Спасибо @BrunoFinelli! Единственный мелкий недосмотр, который у меня был, это «www.', было бы неплохо удалить их? – tylerl
Я не понимал, что он применяется только к одной ссылке при каждом запуске ... Могли бы вы изменить свой ответ, чтобы он мог исправить более одной ссылки в данной строке? Спасибо! – tylerl