CSS字符串 - 选择最多三个逗号的所有内容

时间:2009-12-31 02:17:40

标签: javascript regex string scriptaculous

我正在编写一个包含CSS3发光的Scriptaculous自定义高亮动画。我得到了盒子阴影样式,需要将其拆分为rgba alpha值,然后改变该值以使阴影消失。

$('fresh').style.MozBoxShadow

将返回

0 0 20px rgba(163, 238, 71, 1.0)

1.0是alpha值。我需要拆分它以便我可以设置:

$('fresh').style.MozBoxShadow = everythingBeforeAlphaValue + anAlphaValueIVaryWithJS + ')';

所有数字都可以是任意长度的数字,所以我不能使用substring(这就是我真正知道的:))。你能帮忙吗?

3 个答案:

答案 0 :(得分:2)

var mozBoxShadow = $('fresh').style.MozBoxShadow;
var everythingBeforeAlphaValue = /.*?rgba\((?:\d*,\s*){3}/.exec(mozBoxShadow)[0];

答案 1 :(得分:2)

好吧,你仍然可以使用substring,因为你可以知道lastIndexOf(','),例如:

var str = "0 0 20px rgba(163, 238, 71, 1.0)";

var everythingBeforeAlphaValue  = str.substring(0, str.lastIndexOf(',') + 1);
// "0 0 20px rgba(163, 238, 71,"
// ...

答案 2 :(得分:1)

这将以编程方式更好,更清晰,无需解析字符串。

如果我理解logic权利,您应该能够通过

直接获得颜色
$('fresh').style.MozBoxShadowColor

那将为你节省一部分。

我也非常确定可以通过编程方式访问颜色的“alpha”组件,但我不知道如何。