Mac*_*Mac 1 javascript replace eval
是否有可能使用正则表达式的字符串替换数组可以eval用来执行和返回我需要通过此方法完成的函数的值:
var message = $('#message').html();
var searchstring = [
/<span style="color: rgb((.*), (.*), (.*));">(.*)<\/span>/gi,
// other regex
];
var replacestring = [
eval('RGBtoHex($1, $2, $3)'),
// other regex
];
for(i = 0; i < searchstring.length; i++)
{
message = message.replace(searchstring[i], replacestring[i]);
}
$('.message-box').val(message);
Run Code Online (Sandbox Code Playgroud)
我正在尝试将RGB转换为十六进制值,因此它应该更改为:rgb(255, 255, 255)to #FFFFFF.但是,当我这样做时,它在Firebug中说:$1 is not defined这是为了这个:eval('RGBtoHex($1, $2, $3)'),.
如何eval()在执行字符串替换时执行函数将rgb返回到十六进制值.replace()?
除了eval部分外,一切都很完美.
它不像那样工作.
当你打电话时eval,你正在eval使用原始字符串'RGBtoHex($1, $2, $3)'.
您需要将函数传递给replace:
message.replace(
/rgb\((\d+), (\d+), (\d+)\)/gi,
function(str, r, g, b) { return RGBtoHEX(r, g, b); }
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3688 次 |
| 最近记录: |