加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式查找标记ID和内容JavaScript

发布时间:2020-12-14 05:56:32 所属栏目:百科 来源:网络整理
导读:嘿我正在尝试用 javascript中的正则表达式做一些非常具体的事情,而我的regexp-foo充其量只是shakey.想知道是否有任何专业人士可以指出我正确的方向.所以我有一些文字…… item id="myid1"myitem1/itemitem id="myid2"myitem2/item …等等 我想将它删除成一个
嘿我正在尝试用 javascript中的正则表达式做一些非常具体的事情,而我的regexp-foo充其量只是shakey.想知道是否有任何专业人士可以指出我正确的方向.所以我有一些文字……

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

在结束时,结果将是一个看起来像这样的对象:

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

YMMV如果< item>元素包含嵌套的HTML.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读