我在变量中有一个很长的CSS代码,我想找到最后一个匹配的条件。 我的代码是:
var str = 'body { background: #fff; } .customClass{ font-size: 12px; } .anotherClass { color: #292929 } body { color : #fff }';
var str2 = str.substring(str.lastIndexOf("body {") + 1, str.lastIndexOf("}"));
console.log(str2);
在这里,我缩短了str以便更好地理解。在我的情况下,它至少约100-200行。
现在我只想要最后一个body { anything here }
子字符串。在上面的例子中。我想要body {color: #fff }
而不是字符串中第一个或任何其他出现的body标签。我知道多个机身样式不是很好的代码,但是现在这个代码依赖于第三方插件。我怎样才能做到这一点?
答案 0 :(得分:1)
var str = 'body { background: #fff; } .customClass{ font-size: 12px; } .anotherClass { color: #292929 } body { color : #fff }';
var str2 = str.substring(str.lastIndexOf("body {"), str.lastIndexOf("}") + 1);
console.log(str2);
答案 1 :(得分:1)
试试这个:)
var str = 'body { background: #fff; } .customClass{ font-size: 12px; } .anotherClass { color: #292929 } body { color : #fff } body{cool}';
var regex = /body\s+\{([^}]+)/g;
var temp;
var resultArray = [];
while ((temp = regex.exec(str)) != null)
{
resultArray.push(temp[1]);
}
console.log(resultArray);
答案 2 :(得分:0)
你只需要对str2进行一些小改动
var str2 = str.substring(str.lastIndexOf("body"));
这将导致str2为body {color: #fff }
,如果您只需要样式部分,也可以添加以下行。
var styleStr = str2.substring(str2.indexOf('{')+1, str2.indexOf('}'));
现在它会产生一个像color : #fff