2014-01-05 2 views
2

То, что я пытаюсь сделать, это написать яваскрипт функции, где вы даете ему нагрузку текста, и он будет искать URL, которые заканчиваются в .jpg, .jpeg, .gif, .png и т.д., а затем заменяет их кодом для встроенного изображения. Так, например, текст, как:Обнаружение ссылок на изображения и вставлять их

Bacon ipsum dolor sit amet shank pork loin ground round beef meatloaf landjaeger tongue chicken strip steak short loin jowl pork chop meatball. Doner shank sausage, tri-tip jerky frankfurter tongue. Venison meatloaf kielbasa, hamburger ball tip tongue beef boudin shoulder spare ribs landjaeger short loin shank. http://1.bp.blogspot.com/-jzdnfSEhmEQ/UDvjPnb-Z0I/AAAAAAAACN4/jTQMom9Fr1c/s320/improvKitchen_howToCookBacon_00.jpg Ham hock ribeye swine sirloin tri-tip kielbasa turkey. Venison strip steak landjaeger corned beef ribeye, pig t-bone pancetta fatback drumstick short ribs sausage pork swine turkey. Jerky chuck bacon turducken doner salami andouille short ribs pork kielbasa drumstick pork chop.

вернуть бы

Bacon ipsum dolor sit amet shank pork loin ground round beef meatloaf landjaeger tongue chicken strip steak short loin jowl pork chop meatball. Doner shank sausage, tri-tip jerky frankfurter tongue. Venison meatloaf kielbasa, hamburger ball tip tongue beef boudin shoulder spare ribs landjaeger short loin shank. <img src="http://1.bp.blogspot.com/-jzdnfSEhmEQ/UDvjPnb-Z0I/AAAAAAAACN4/jTQMom9Fr1c/s320/improvKitchen_howToCookBacon_00.jpg" /> Ham hock ribeye swine sirloin tri-tip kielbasa turkey. Venison strip steak landjaeger corned beef ribeye, pig t-bone pancetta fatback drumstick short ribs sausage pork swine turkey. Jerky chuck bacon turducken doner salami andouille short ribs pork kielbasa drumstick pork chop.


У меня уже есть функция для ссылок, которые я нашел в другом сообщении SO, если это имеет место помощь:

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

Таким образом, функция, которую вы нашли, не решает вашу проблему, правильно? –

+0

Не может быть хорошей идеей. URL-адрес, который заканчивается любым расширением изображения, также может быть скриптом. Просто говорю. –

+0

Функция, которую я нашел, преобразует URL-адреса в гиперссылки. Есть ли способ изменить функцию так, чтобы она искала расширения изображений? –

ответ

3

Ну вам просто нужно изменить, что заменить на <a> тегов разметки на <img>. И добавьте шаблон регулярного выражения, чтобы проверить на .jpg, .jpeg, .gif, .png.

function replaceURLWithImage(text) { 
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])+\.(?:jpe?g|gif|png)/ig; 
    return text.replace(exp,"<img src='$1'/>"); 
} 

См. Это jsfiddle demo.

+0

Проблема заключается в том, что вы найдете ссылки, такие как http://www.google.com, и попытайтесь превратить их в изображения. Он должен посмотреть расширение URL и только соответствовать расширениям изображений. –

+0

ах да извините. Я обновил 'regexp' и демонстрацию jsfiddle. –

Смежные вопросы