如何在JSONata中根据数字添加st、nd或rd后缀?
在JSONata中为数字添加序数后缀的实现方法
可以通过结合JSONata的$mod、$in、$switch和$cond函数,实现根据数字自动添加st/nd/rd/th序数后缀的需求,核心表达式如下:
$string($) & $cond( $in($mod($, 100), [11,12,13]), "th", $switch($mod($, 10), [ [1, "st"], [2, "nd"], [3, "rd"], ["*", "th"] ]) )
表达式说明
$string($):将当前处理的数字转换为字符串,为后续拼接后缀做准备$mod($, 100):提取数字的最后两位,用于判断11、12、13这类特殊情况(无论前面的数字是什么,这三个数都使用th后缀)$in(...):检查最后两位是否属于[11,12,13],若是则直接返回th$switch(...):针对个位数字匹配对应的后缀:- 个位为1时返回
st - 个位为2时返回
nd - 个位为3时返回
rd - 其他所有情况返回
th
- 个位为1时返回
示例效果
- 输入
1→ 输出"1st" - 输入
2→ 输出"2nd" - 输入
3→ 输出"3rd" - 输入
11→ 输出"11th" - 输入
21→ 输出"21st" - 输入
123→ 输出"123rd"
内容的提问来源于stack exchange,提问作者Shree
相关产品推荐
相关产品推荐

