#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 /