求一正则表达式:搜索html中指定的字符串并替换成其它字符串,搜索范围排除a,img标签,如下图
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
let str = `<p>查找湿气两个字 <img src="images/testing.jpg" alt="湿气" /> 查找湿气两个字 <a href="http://xxxxxx/" title="" target="_blank">查找湿气两个字</a> <span class="test">查找湿气两个字</span> 查找湿气两个字</p>
`;
var arr = [];
str = str.replace(/<img\s+[\S\s]*?>|<(a)\s+[\S\s]*?>[\S\s]*?<\/\1>/ig,function (s) {
var r = "@_"+arr.length+"_@";
arr.push(s);
return r;
});
str = str.replace(/湿气/ig,"【替换】");
str = str.replace(/@_(\d+)_@/ig,function (s,a) {
return arr[parseInt(a, 10)];
});
console.log(str);
思路:
1.获取搜索到的内容;
2.求子串删除a标签,img标签的内容;
1.首先获取到这一段html内容,将内容转换为字符串,这样就可以对字符串进行操作了。
2.用正则表达式获取a标签和是img标签,并且匹配你想要替换的它们中的文字,替换为“空”就可以了。
思路:
1.获取搜索到的内容;
2.删除a标签,img标签的内容;
内容.replace(/<(?!a|/a).*?>/g, "").replace(/<(?!img).*?>/g, "")
给你一个Javascript语言的例子
<script type=text/javascript>
var s ='<html> <body> <div>asdasd</div> <p>avbc<img src="xx"/>llll</p></body></html>';
var regex = /<\/?((?!img).)*?\/?>/g;
var result = s.replace(regex,"");
alert(result);
</script>
是删除掉标记内的特定内容(例如”湿气“),而不是删除整个a标签和img 标签是吗?
还是说把含有特定内容的a和img 标签完全删除?
使用快速查询快捷键(快捷键有改的话,不同很正常)Ctrl+R找到后,替换为空格,或者删除就行
是想替换查找出来的字符串,
这个简单