RegEx = new RegExp(sourcevalue, "gi");
temp[i] = Selectors[i].cssText.replace(RegEx, targetvalue);
在哪里sourcevalue = rgb(255,0,0)
和targetvalue = #FFFFFF
,但sourcevalue
没有被 代替targetvalue
,为什么?
RegEx = new RegExp(sourcevalue, "gi");
temp[i] = Selectors[i].cssText.replace(RegEx, targetvalue);
在哪里sourcevalue = rgb(255,0,0)
和targetvalue = #FFFFFF
,但sourcevalue
没有被 代替targetvalue
,为什么?
很可能是因为您没有正确地转义括号:
var sourcevalue = "rgb\\(255,0,0\\)";
括号用于分组/反向引用匹配。如果你想从字面上匹配它们,你必须用\
. 由于sourcevalue
是一个字符串并且\
也是字符串中的转义字符,因此您必须转义反斜杠以创建文字。
否则,表达式将匹配rgb255,0,0
但不匹配rgb(255,0,0)
。
因为 sourcevalue 是一个正确的 Javascript 正则表达式,但它没有按您预期的方式工作。正则表达式中有特殊字符,例如 () 括号。它们用于对正则表达式的各个部分进行分组。要将它们与它们的“字面”含义一起使用,您必须使用反斜杠来转义它们
var RegEx = /rgb\(255,0,0\)/gi;