我正在使用PHP,并试图捕获所有的ID&jQuery选择器中的类,如:
$('#ddd .aaa #bbb #c').show();
test.$('#eee[type=submit] .fff').addClass('test')
但是我的正则表达式也会捕获".jpg"、".png"..url,现在我有了另一个想法
"任何类名或id前面都必须有一个$('
符号"
(因此它不会捕获任何URL链接或十六进制代码)
--
我是这样做的:
'$'('((?:'.|#)([_a-zA-Z]+[_a-zA-Z0-9-]*))(?=[^'(]*'))
但它只会赶上的第一场比赛
#ddd
#eee
我如何获得每个类的名称或ID,如:
#ddd
.aaa
#bbb
#c
#eee
.fff
并保留(或重复?)规则:字符串前面必须有一个$('
符号
--
答案:
此正则表达式将搜索$()
、.find()
、.prependTo()
、.closest()
、中的类和ID
所以你需要手动添加更多的选择器:
/(?:(?:'$|'$_|'.(?:find|prependTo|closest))'(''|(?<!^)'G)'s?([.#][-'w]+)?[^()'s.#]*(?=[^()]*'))/gm
您需要在此处使用'G
锚点。锚CCD_ 8在上一个匹配结束的位置处匹配。在第一次匹配尝试期间,'G
以'A
的方式在字符串的开头进行匹配。
(?:'$'('|(?<!^)'G)'s?([.#]'w+)[^()'s.#]*(?=[^()]*'))
演示