1

最终目标......检索一组具有特定属性/值的DIV并更新元素类型并操纵属性和值......

我想使用 RegEx 来测试以下场景(我相信基于上述目标是正确的)

  • 对于每个打开的 DIV
  • 包含一个attribute-to-check属性
    • 该属性可能是也可能不是第一个属性
  • 它的值包含value-contains
    • 该值可能是也可能不是属性中的第一个值(允许将来扩展)
  • 找到它的关闭 DIV
    • 此 DIV 本身可能包含其他 DIV -包括也将匹配的其他 DIV

那么我尝试了什么?...使用测试脚本:

<p>test1</p>
<DIV attribute-to-check='notvalid'>
  test2
</DIV>
<p>test3</p>
<DIV attribute-to-check='value-contains:2012-12-12' class='test4'>
  test5
</DIV>
<p>test6</p>
<DIV attribute-to-check='value-contains:2012-01-01' class='asd'>
  test6
</DIV>
<p>test7</p>

我有以下正则表达式......

<?DIV.*?attribute-to-check='value-contains:.*?>(.*?)</DIV>

但这又带回来了

string 1: "<DIV attribute-to-check='notvalid'>test2</DIV>test3<DIV attribute-to-check='value-contains:2012-12-12' class='test4'>test5</DIV>"

string 2: "<DIV attribute-to-check='value-contains:2012-01-01' class='asd'>test6</DIV>"

我怀疑它会带回test2string1,因为它有一个带有待检查属性的开放 div,该值无效?所以我想知道我是否得到第一个 DIV,然后是任意数量的字符,直到它找到任何其他字符attribute-to-check='value-contains:,然后是关闭的 DIV?

我正在努力从这一点上导航,并感谢社区的任何帮助:)

谢谢迪伦

4

1 回答 1

0

不要对 HTML 使用正则表达式,说真的不要

JQuery 有很棒的选择器语法来做你想做的事,真的。看这里,它在文档顶部向您展示了如何做您想做的事情。

例如:

$('div[attribute-to-check|="value-contains:"]')

将产生具有所需属性/值约束的 div。

于 2012-10-02T10:48:33.843 回答