我有这条线在我的循环:如何在Regex中使用变量?
var regex1 = new RegExp('' + myClass + '[:*].*');
var rule1 = string.match(regex1)
其中 “串” 是类选择的一个字符串,例如:.hb-border-top:before, .hb-border-left
和 “MyClass的” 是一类:.hb-border-top
由于我循环字符串,我需要匹配其中包含“myClass”的字符串,包括:before和:hover,但不包括hb-border-top2
之类的内容。
我对这个正则表达式的想法是匹配hb-border-top
然后:*
匹配一个或多个冒号,然后匹配字符串的其余部分。
我需要匹配:
.hb-fill-top::before .hb-fill-top:hover::before .hb-fill-top .hb-fill-top:hover
但只以上的回报:
.hb-fill-top::before .hb-fill-top:hover::before .hb-fill-top:hover
,不返回.hb-fill-top
本身。
因此,它必须匹配.hb-fill-top
自身,然后什么,只要它与:
编辑将启动如下:下面
图片:我的字符串是{} selectorText的内容。 一个字符串可以是一个单独的类,也可以是一个带有伪元素的类,或者是一个只有少数句柄的规则,用逗号分隔。
包含.hb-fill-top
ONLY或.hb-fill-top:
+某物(悬停,后等),必须选择每个字符串。类将会变成可变的“myClass”,因此我的问题是我不能太精确。
我将在下班时检查它,谢谢你的回答。正如你在编辑的问题中看到的,我有一个我必须选择的字符串列表。基于这个正则表达式,字符串可以是1(选择)或0(跳过)。所以如果字符串与悬停的“键”或“键”匹配,元素等后,它将被选中。 我正在构建一个函数,它基本上使用我的整个样式表,循环所有规则并仅返回适用于我放入“关键点”的类的规则。它必须以某种方式返回all:hover,:在规则和其他包含“key”的链式规则之前。 – Varin
当你使用'^'来标记字符串的开头时:'RegExp(“^”+ key.replace ....'这不是说只有当它以“key”开头时,字符串才会匹配吗?如果“key”在字符串中间的某个地方? – Varin
@Varin:'^'在字符串的起始处锚定匹配,如果你不需要这样的行为,就移除它我编辑JS片段到'filter'不匹配的值 –