Javascript находит url и заменяет его ссылкой и при необходимости обрезает текст

#javascript #regex

#javascript #регулярное выражение

Вопрос:

У меня есть функция, которая извлекает URL-адреса из фрагмента текста и заменяет их ссылками. Что я хотел бы сделать, так это посмотреть на длину в 1 доллар, и если она превышает 64 символа, я хотел бы заменить ее чем-то вроде «link». Я просто не уверен, как подойти к этому.

 var exp = /(b(https?|ftp|file)://[-A-Z0-9 amp;@#/%?=~_|!:,.;]*[-A-Z0-9 amp;@#/%=~_|])/ig; 
return text.replace(exp,"<a href='$1' target='_blank'>$1</a>"); 
  

Есть идеи?

Ответ №1:

Попробуйте —

 var str = "http://www.yahooghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdf.co.uk";
str = str.replace(/(b(https?|ftp|file)://[-A-Z0-9 amp;@#/%?=~_|!:,.;]*[-A-Z0-9 amp;@#/%=~_|])/ig, function($0) { 
    if ($0.length > 60 ) return "<a href='"   $0   "' target='_blank'>Link</a>" 
    else return "<a href='"   $0   "' target='_blank'>"   $0   "</a>"     
})
alert(str);
  

Демонстрация — http://jsfiddle.net/E7hyd /