javascript - 用 JSON 字符串中的 hex 替换所有 r、g、b 值
问题描述
const jsonString = JSON.stringify(myJson, null, 2);
{
"object1": {
"subobject1": {
"r": 0,
"g": 0,
"b": 0
},
"someOtherProperty": 1
},
"allColors": {
"object2": [
{
"subobject2": {
"r": 4,
"g": 5,
"b": 6
},
"subobject3": {
"r": 7,
"g": 8,
"b": 9
},
"subobject4": {
"r": 9,
"g": 10,
"b": 11
}
}
......
......
}
什么是正确的正则表达式和 JS在同一字符串对象中用十六进制替换所有r
, g
,值的方法?b
例如:
"subobject2": {
"r": 4,
"g": 5,
"b": 6
}
会变成:
"subobject2": "#040506"
解决方案
var rgb = {
"red": 32,
"green": 38,
"blue": 46
}
function tohex(color) {
function tohex2(dec) {
hex = Math.max(0, Math.min(255, dec)).toString(16);
if (hex.length == 1) hex = "0" + hex;
return hex;
}
return "#" + tohex2(color["red"]) + tohex2(color["green"]) + tohex2(color["blue"]);
}
rgb = tohex(rgb);
// rgb = #20262e
推荐阅读
- c# - 互操作错误 HRESULT:服务器上的 0x80020005 (DISP_E_TYPEMISMATCH)
- c++ - contains 不是 std::map MSVC 的成员
- excel - INDEX MATCH 有 2 个条件,匹配部分文本
- ios - 更新终端后 Pod init 无法正常工作(一些弹出窗口变为 ZSH)
- ios - 如何修复 iOS 上 Ironsource Unity SDK 中的错误
- python - 每次我需要在 Lambda 中使用它时,如何避免打包请求?
- angular - 验证不会传播到 Angular 中的自定义表单控件 ng-select
- objective-c - 对具有不可变参数且没有初始化程序的方法进行单元测试的最佳方法是什么?
- polymer - 为什么 Webcomponent 对象的值在同一个 webcomponent 的不同实例之间共享?
- macos - 如何在 Mac 上调试访问相机的应用程序?