body { background-color:#CCC; color:#000;}a{color:#FF0;}.xxx { background-color:#060}
CSS代码如上,无视换行,假设是一行。
如何匹配body { background-color:#CCC; color:#000;}里的color:#000;
CSS里的属性也许并不只是这几个,还有更多。
CSS代码如上,无视换行,假设是一行。
如何匹配body { background-color:#CCC; color:#000;}里的color:#000;
CSS里的属性也许并不只是这几个,还有更多。
<script>
var str = "div{color:yellow;}body { background-color:#CCC; color:#000;}a{color:#FF0;}.xxx { background-color:#060}";
var req = /body\s*\{[^{}]*(color:[^;]+)[^{}]*\}/i;
alert(str.match(req)[1]);
</script>
会匹配background-color:#CCC里的color
var str = "......";
var req = /body\s*(({[^{}]*(\s|;))|({))(color:[^;]+)[^{}]*\}/i;
var array = str.match(req);
alert(array[array.length - 1]);基本满足要求了本来想用(?<!exp),但报JS错误,郁闷了,就用了上面的方法
var str="body { background-color:#CCC; color : #000; }";
var re=/^.*(?!-)color[\s]*:[\s]*([^;]+);.*$/gi;
alert(re.test(str));//true
alert(RegExp.$1);//#000
</script>
<script>
var str="body { background-color:#CCC; color : #000; }.xxx { background-color:#060}";
var re=/^.*body[\s]*{[^{]*(?!-)color[\s]*:[\s]*([^;]+);.+$/gi;
alert(re.test(str));//true
alert(RegExp.$1);//#000
</script>
var oReg=/body\s*\{.*?color:\s*(.*?)\s*;.*?\}/i;
alert(str.match(oReg)[1]);
var str = "div{color:yellow;}body { background-color:#CCC ; color:#000}a{color:#FF0;}.xxx { background-color:#060}";
var oRegContent=/body\s*\{(.*?.)\}/i;
var oRegColor=/(^|;)\s*color:\s*(.*?)\s*(;|$)/i;
alert(str.match(oRegContent)[1].match(oRegColor)[2]);
var str = "div{\n\tcolor:yellow;\n}\nbody{\n\tbackground-color:#CCC;\n\tcolor:#000;\n}\na{\n\tcolor:#FF0;\n}\n.xxx {\n\tbackground-color:#060\n}";
var re = /body\s*\{[^}]*?[^-]\bcolor:([^;}\s]+)[^}]*\}/ig;
while(re.exec(str))
alert(RegExp.$1);