我在变量frontendtext中有一个包含text和img标签的字符串。我希望其中的img标签仅使用正则表达式替换为alt属性值。
var frontend1 = frontendtext.replace(/<img.*?alt="(.*?)".*>/g, 'O');
它用O
替换我的字符串,但我想用alt替换img标签,其余的字符串保持不变。
答案 0 :(得分: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);
&#13;
https://jsfiddle.net/yoqkdapa/
正则表达式是;
<img
- 匹配<img
代码
.*?alt=
- 匹配alt
属性
"(.*?)"
- 匹配alt标记
[^\>]+
- 除了>
标记的结束<img
之外,其他所有内容都匹配
>
- 匹配<img
代码的结尾