Flash AS3从String中提取数字(正则表达式?)

时间:2010-02-25 22:55:19

标签: regex flash actionscript-3

我正在向Flash发送一个var:

// incoming
var pageColor:String = "rgb(81, 89, 112)";

我有这个功能将RGB值转换为HEX

function rgb2hex(r:Number, g:Number, b:Number) {
    return '0x'+(r << 16 | g << 8 | b).toString(16).toUpperCase();
}
// trace(rgb2hex(81, 89, 112));

现在我正在寻找从pageColor字符串中提取数字的最佳方法,并在rgb2hex函数中使用它们。

2 个答案:

答案 0 :(得分:5)

pageColor = pageColor.substring(4, pageColor.length - 1); // '81, 89, 112'
var colors:Array = pageColor.split(",");
rgb2hex(parseInt(colors[0]), parseInt(colors[1]), parseInt(colors[2]));

顺便说一句,您应该更改rbg2hex函数的参数,以取​​intuint而不是数字。

答案 1 :(得分:0)

var pageColor:String = "rgb(81, 89, 112)";

pageColor = pageColor.substring(4, pageColor.length - 1);
var colors:Array = pageColor.split(",");

function rgb2hex(r:int, g:int, b:int) {
    return '0x'+(r << 16 | g << 8 | b).toString(16).toUpperCase();
}
trace(rgb2hex(parseInt(colors[0]), parseInt(colors[1]), parseInt(colors[2])));