var str = '<img data-toggle="tooltip" data-placement="top" class="emoticon-speechless" src="img/emoji/emoticon-speechless.gif" title=":)"> text content<br> <img data-toggle="tooltip" data-placement="top" class="emoticon-speechless" src="img/emoji/emoticon-sad.gif" title=":(">';
正则表达式替换img删除并使用标题attr
:) text content <br> :(
如何获得替换str var
答案 0 :(得分:1)
您可以使用以下正则表达式
/<img.*title="(.*)">/i
完整代码段:
var str = '<img data-toggle="tooltip" data-placement="top" class="emoticon-speechless" src="img/emoji/emoticon-speechless.gif" title=":)"> text content<br>';
console.log(str.replace(/<img.*title="(.*)">/i,'$1'));
答案 1 :(得分:0)
为什么使用正则表达式来执行此操作?听起来这可能是X/Y problem,也就是说,你正在努力实现的一些任务是认为正则表达式是解决方案吗?
我正在考虑使用replaceChild
将img节点更改为您真正想要的内容。
Array.prototype.slice.call(document.querySelectorAll("img")).forEach(function(img) {
img.parentNode.replaceChild(document.createTextNode(img.title), img);
})
<img data-toggle="tooltip" data-placement="top" class="emoticon-speechless" src="img/emoji/emoticon-speechless.gif" title=":)"> text content<br> <img data-toggle="tooltip" data-placement="top" class="emoticon-speechless" src="img/emoji/emoticon-sad.gif" title=":("></div>
如果你真的有一个你需要操纵的字符串:
var str='<img data-toggle="tooltip" data-placement="top" class="emoticon-speechless" src="img/emoji/emoticon-speechless.gif" title=":)"> text content<br> <img data-toggle="tooltip" data-placement="top" class="emoticon-speechless" src="img/emoji/emoticon-sad.gif" title=":(">'
var container = document.createElement("div");
container.innerHTML = str;
Array.prototype.slice.call(container.querySelectorAll("img")).forEach(function(img) {
img.parentNode.replaceChild(document.createTextNode(img.title), img);
})
var outstr = container.innerHTML;
document.body.innerHTML = outstr;