小程序正则取文本中间

一段html文本,小程序里面又无法变成dom操作

img


想把所有p标签里面的内容取出来,然后img标签变成'[图片]'字符串,u标签变成'[链接]'字符串,请问有办法可以实现吗?

你题目的解答代码如下:

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]
}