js正则提取html标签内的内容

var html = "<p>111</p> <p>222</p> <p>333</p>";

条件:使用js正则
期望得到:一个数组 ['111','222','333']

阅读 20k
5 个回答
var html = "<p>111</p> <p>222</p> <p>333</p>";
html.match(/[^><]+(?=<\/p>)/img);

其实可以换种思路(不知能否满足你的需求):
先把html元素渲染到页面,然后遍历这些元素节点,
拿到元素的innerText,组合成数组

例如:

const ele = document.getElementsByTagName("p")
let eleArr = Array.from(ele).map(item => item.innerText)
console.log(ele, eleArr)
var html = "<p>111</p> <p>222</p> <p>333</p>";
var reg = /<\/p>\s*<p>/;

var result = html.slice(3,html.length - 4).split(reg);
var html = "<p>111</p><p>222</p><p>333</p>";
var reg = /(?<=>)[^<>]+(?=<)/g;
console.log(html.match(reg))//["111","222","333"]
新手上路,请多包涵

var reg = /(?<=<p>).*(?=</p>)/gi;
var testStr = `
<html>
<div>12</div>
<h1>12188238*)(@!</h1>
<h1>12188238*)(@!1212</h1>
</hts>`;

var res = testStr.match(reg);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
1 篇内容引用
推荐问题
宣传栏