2016-05-03 6 views
0

У меня есть строка в переменном frontendtext, которая содержит текстовые и img-теги. Я хочу, чтобы img-теги в нем заменялись значением атрибута alt, используя только регулярное выражение.Regex: заменить тег img своим атрибутом alt

var frontend1 = frontendtext.replace(/<img.*?alt="(.*?)".*>/g, 'O'); 

Он заменяет мою строку с O, но я хочу, чтобы заменить только IMG тег альт и остальную часть строки остается неизменным.

+0

Можете ли вы сказать мне, как это сделать? coz Я не парень с регулярным выражением. Я похож на Jon Snow из регулярного выражения, я знаю nothin – iamsaksham

+0

показать текущее содержимое 'frontendtext' – RomanPerekhrest

+0

hello Roberts. Как вы ❓ iamsaksham

ответ

4

Используя группу захвата, вы можете заменить всю строку с контрольной группой захвата

var frontendtext = "Hello this is an image <img src=\"image.jpg\" alt=\"!!Just some image alt text!!\" /> and foo bar."; 
 
var frontend1 = frontendtext.replace(/<img.*?alt="(.*?)"[^\>]+>/g, '$1'); 
 
alert(frontend1);

https://jsfiddle.net/yoqkdapa/

Регулярное выражение;

<img - соответствует <img тег

.*?alt= - сопрягать все до alt атрибута

"(.*?)" - соответствовать все между кавычками после того, как альт тег

[^\>]+ - сопрягать все, лениво еще, за исключением закрытие ><img тег

> - соответствует закрытию <img тег

+0

Если вы пишете в DOM, браузер отображает его как пробел: https://jsfiddle.net/yoqkdapa/3/ –

+0

да. Я понял. – iamsaksham

+0

Можете ли вы, пожалуйста, объяснить это выражение для других, которые прочтут это на более поздних этапах. – iamsaksham

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