一段html文本,小程序里面又无法变成dom操作
你题目的解答代码如下:
var str = `<p>请所有学生务必检查是否已购买保险</p><p>否则学校会那个的</p><p>请点击<u style="color:blue;">https://baidu.com</u></p><p><u style="color:blue;">https://pornhub.com</u></p><p><br></p><p><br></p><p><img width="100px" src="https://636c-cloud1-9gtve2201fb132a3-1308422995.tcb.gcloud.la/images/15314800.jpg"></p>`;
var arr = str.match(/(?<=<p>)[\s\S]*?(?=<\/p>)/g);
arr.forEach(function(v, i){
v = v.replace(/<img [^<>]*>/g,"[图片]");
v = v.replace(/<u [^<>]*>[\s\S]*?<\/u>/g,"[链接]");
console.log(v);
});
如有帮助,望采纳!谢谢!
其实不用正则也可以提取信息的,直接使用 document.createElement 自己虚构出来一个dom,然后在这个上面操作
var a = '<p>请所有学生务必检查是否已购买保险</p><p>否则学校会那个的</p><p>请点击<ustyle="color:blue,">https://baidu.com</u></p><p><u style=color:blue:">https://pornhub.com</u></p><p><br></p><p><br></p><p><img width="100px src="https://636c-cloud1-9gtve2201fb132a3-1308422995.tcb.gcloud.la/images/1639415314800.jpg</p> '; // 获得文本内容
var el = document.createElement('div'); // 创建一个 dom 对象
el.innerHTML=a; // 给 dom 对象添加内容
var ps=el.getElementsByTagName('p'); // 获取 dom 中的 p 标签
for(var p in ps){ // 遍历 p 标签
console.log(ps[p].innerText); // p 是数字索引,所以这里用 ps[p]
}