分组正则表达式BackReferences

时间:2009-01-08 11:57:40

标签: javascript html regex

我有以下RegEx

id=(.*?) | id="(.*?)"

原因是我试图使用JavaScript从浏览器DOM中替换Ids。但是,IE会从元素属性中引用引号,因为它似乎不需要它们在DOM

我遇到的问题是每个备用语句的反向引用都在不同的组($ 1和$ 2)中,因为匹配只有一个或另一个可以将后向引用作为单个反向引用返回?

编辑:

<div id="test1" /><div id=test2 />

将匹配如下

    match         |  $1   |   $2
--------------------------------
    id="test1"    | test1 |
    id=test2      |       |  test2

我只想将两个反向引用添加到$ 1

3 个答案:

答案 0 :(得分:0)

怎么样:

id="?(.*?)"?

(可能是。应该是[^“] - 我没有测试过它)

答案 1 :(得分:0)

id="?([\w-]*)"?

答案 2 :(得分:0)

我用

id\s*=\s*("[^"]*"|'[^']*'|[^\s>]*)

这将匹配

id="foo"
id='bar'
id=baz

但是要仅检索属性值,如果它被引号括起,则必须在开头/结尾处删除"'