用于匹配HTML字符串中的属性的javascript正则表达式

时间:2014-05-21 04:37:39

标签: javascript regex

任何人都可以在javascript中查看我的正则表达式并建议一个正确的吗?

我正在尝试在HTML / XML字符串中选择属性(名称/值)对,如下所示?

<unknowncustom:tag attrib1="XX' XX'" attrib2='YY" YY"' attrib3=ZZ""'>/unknowncustom:tag>

SOME TEXT that is not part of any tag and should not be selected, name='XX', y='ee';

<custom:tag attrib1="XX' XX'" attrib2='YY" YY"' attrib3=ZZ""'>/custom:tag>

我找到了很多解决方案但没有一个看起来万无一失(包括这一个Regular expression for extracting tag attributes

我当前的正则表达式选择第一个属性对,但无法弄清楚如何使其选择所有匹配的属性。这是正则表达式:

/<\w*:?\w*\s+(?:((\w*)\s*=\s*((?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))))[^>]*>/gim

由于

1 个答案:

答案 0 :(得分:1)

让我们一起去:

/(\w+)\s*=\s*((["'])(.*?)\3|([^>\s]*)(?=\s|\/>))(?=[^<]*>)/g

正则表达并不理想。如果您的属性包含未转义的尖括号< >,则可能无效。

证明:http://regex101.com/r/dD4uT4