gpt4 book ai didi

javascript - eval() 字符串替换 | JavaScript

转载 作者:行者123 更新时间:2023-11-30 08:15:38 27 4
gpt4 key购买 nike

是否有可能使用正则表达式的字符串替换数组可以使用 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);

我正在尝试将 RGB 转换为十六进制值,因此它应该更改为:rgb(255, 255, 255)#FFFFFF。但是,当我这样做时,它在 Firebug 中说:$1 is not defined 这是为此定位的:eval('RGBtoHex($1, $2, $3)'),

在使用 .replace() 进行字符串替换时,如何执行 eval() 函数将 rgb 返回为十六进制值?

除 eval 部分外,一切正常。

最佳答案

不是这样的。当您调用 eval 时,您正在eval原始字符串 'RGBtoHex($1, $2, $3)'

您需要pass a function to replace :

message.replace(
/rgb\((\d+), (\d+), (\d+)\)/gi,
function(str, r, g, b) { return RGBtoHEX(r, g, b); }
);

关于javascript - eval() 字符串替换 | JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4566309/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com