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

前端之家收集整理的这篇文章主要介绍了正则表达式查找标记ID和内容JavaScript前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
嘿我正在尝试用 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.

猜你在找的正则表达式相关文章