gpt4 book ai didi

javascript - 用于查找标签 ID 和内容 JavaScript 的正则表达式

转载 作者:数据小太阳 更新时间:2023-10-29 06:03:50 24 4
gpt4 key购买 nike

嘿,我正在尝试用 javascript 中的正则表达式做一些非常具体的事情,而我的 regexp-foo 充其量是不稳定的。想知道是否有任何专业人士可以为我指明正确的方向。所以我有一些文字...

<item id="myid1">myitem1</item>
<item id="myid2">myitem2</item>

...等等

我想把它剥离成一个数组myid1, myitem1, myid2, myitem2, ....等

永远不会有嵌套元素,所以不存在递归嵌套问题。任何人都能够快速解决这个问题?感谢您的帮助!

最佳答案

这是一个正则表达式:

  • 匹配开始和结束标签元素名称
  • 提取id属性的值
  • 提取标签内部html内容

注意:我懒得匹配这里的属性值。需要用双引号括起来,属性名和值之间不能有空格。

<([^\s]+).*?id="([^"]*?)".*?>(.+?)</\1>

在 javascript 中运行正则表达式将像这样完成:

search = '<item id="item1">firstItem</item><item id="item2">secondItem</item>';
regex = new RegExp(/<([^\s]+).*?id="([^"]*?)".*?>(.+?)<\/\1>/gi);
matches = search.match(regex);
results = {};
for (i in matches) {
parts = regex.exec(matches[i]);
results[parts[2]] = parts[3];
}

最后,results 将是一个如下所示的对象:

{
"item1": "firstItem",
"item2": "secondItem"
}

YMMV 如果 元素包含嵌套的 HTML。

关于javascript - 用于查找标签 ID 和内容 JavaScript 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3271061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com