【发布时间】:2013-01-04 17:13:50
【问题描述】:
我正在尝试调整我发现的一个 JQuery zen 编码插件以适应我自己的用途。我遇到的问题之一是代码中的一个错误,例如
a[href="google.com"]
将扩展为
<a href="google.com" class="com"</a>
代码使用的正则表达式是:
/(\.[\w-]+)/gi
我已经修改了前瞻,看看它前面是否有偶数个括号。
/(\.[\w-]+)(?=([^\]]*\][^\]]*\])*[^\]]*$)/gi
我使用过正则表达式测试器,它似乎可以工作,但是当使用 javascript .match() 时,它会返回“.com”作为上述字符串中的匹配项。
下面的回复解决了有问题的错误,但创建了一个新错误。现在:
a.class[href="google.com"]
没有解决
编辑:
我接受了下面的答案,因为它把我带到了我需要去的地方。最后的正则表达式竟然是/(\.[\w-]+)(?=([^\]]*\][^\]]*\])*[^\]]*\.[\w-]+)/gi
【问题讨论】:
-
/gi是什么? /g 用于所有!但是 /gi 用于什么? -
@AspiringAqib
i= 不区分大小写。这里没有效果,但以防万一仍然是一个很好的做法。 -
@JanDvorak 你能举个例子吗?
-
请注意,您只计算右括号。也许你应该看看下一个左括号或下一个右括号是否更接近。
-
@AspiringAqib
/a/i.test("A") //true
标签: javascript regex lookahead