【求助】怎么在obsidian base用自定义函数将数值转换成千分位、人民币大写?

怎么在obsidian base用自定义函数将数值转换成千分位、人民币大写?


想要实现预期的效果

  1. 将123456转换成“123,456”
  2. 将123456转换成“壹拾贰万叁仟肆佰伍拾陆”

已尝试的解决方案

  • 似乎用不了 Number.toLocaleString()

千分位找ai写成了,人民币没成功
值是填在「金额」属性里的,属性值有英文包裹时会被识别为文本string,没有时是number
笔记规范的话,可以只用一部分,方便再添加位数

```

if(金额,
if(金额.isType("number"),
if(金额.toFixed(0).length <=3,金额.toFixed(0),
if(金额.toFixed(0).length ==4,金额.toFixed(0).slice(0,1)+","+金额.toFixed(0).slice(1),
if(金额.toFixed(0).length ==5,金额.toFixed(0).slice(0,2)+","+金额.toFixed(0).slice(2),
if(金额.toFixed(0).length ==6,金额.toFixed(0).slice(0,3)+","+金额.toFixed(0).slice(3),
if(金额.toFixed(0).length ==7,金额.toFixed(0).slice(0,1)+","+金额.toFixed(0).slice(1,4)+","+金额.toFixed(0).slice(4),
if(金额.toFixed(0).length ==8,金额.toFixed(0).slice(0,2)+","+金额.toFixed(0).slice(2,5)+","+金额.toFixed(0).slice(5),
if(金额.toFixed(0).length ==9,金额.toFixed(0).slice(0,3)+","+金额.toFixed(0).slice(3,6)+","+金额.toFixed(0).slice(6),
金额.toFixed(0)
))))))),
if(金额.isType("string"),
if(金额.length <=3,金额,
if(金额.length ==4,金额.slice(0,1)+","+金额.slice(1),
if(金额.length ==5,金额.slice(0,2)+","+金额.slice(2),
if(金额.length ==6,金额.slice(0,3)+","+金额.slice(3),
if(金额.length ==7,金额.slice(0,1)+","+金额.slice(1,4)+","+金额.slice(4),
if(金额.length ==8,金额.slice(0,2)+","+金额.slice(2,5)+","+金额.slice(5),
if(金额.length ==9,金额.slice(0,3)+","+金额.slice(3,6)+","+金额.slice(6),
金额
))))))),
金额
)
),"")