Less-如何用字符串替换整数?

Less-如何用字符串替换整数?,less,Less,我有一个较小的变量: @列:12 我用它创建了一个动态类名: .one-@{columns}{}//返回.one-12{} 如何将12替换为字符串“十二” 伪码 .one-@{replace(第十二列)}{} 结果将是。十二分之一{} 建议将不胜感激 解决方案是使用阵列: 而不是@columns:12 我有@栏目:12、12 然后我提取值: I can目标值和具有mixin的类名: .@{columns-class} { .column(@columns-number); } 假设(如注

我有一个较小的变量:
@列:12

我用它创建了一个动态类名:
.one-@{columns}{}//返回.one-12{}

如何将12替换为字符串“十二”

伪码
.one-@{replace(第十二列)}{}

结果将是
。十二分之一{}

建议将不胜感激

解决方案是使用阵列: 而不是
@columns:12

我有
@栏目:12、12

然后我提取值: I can目标值和具有mixin的类名:

.@{columns-class} {
   .column(@columns-number);
}
假设(如注释所示)您不能更改
@columns
变量本身的值,并且其可能的值不是无限的,一个简单的整数到字符串(或任何其他)转换表(一个简单的列表)将实现以下目的:

@列:12;
@列字符串:提取(@i2s,@columns);
//用法:
.class-@{columns string}{
/* ... */
}
//下表:
@i2s:
一
二
三
四
五
六
七
八
九
十
十一
十二
十三
十四
十五
十六
十七
十八
十九
二十
;

很抱歉,为什么不将单词设置为变量值?你想在这里做一些数字-单词转换吗?变量@columns一直在其他地方使用,它设置网格系统中的网格数。就我所知,Less没有任何内置的数字到单词的转换功能。因此,如果你想这样替换,你必须编写你自己的替换函数,如果你有很多这样的数字需要转换,这有点糟糕。不错的选择,但我个人更喜欢在类名中使用数字本身,而不是转换:)@Harry,事实上,我还想知道使用
.xxx十二
而不是
.xxx-12
的原因是什么(在所有这些数字“代码”几个世纪前被发明出来,正是为了用来代替那些单调乏味的词……:)确实是一个很好的解决方案。万一你们俩还不知道我喜欢冗长的表达方式。所以我不会以.1-3-6-sm这样的类结束,这些类现在对我来说绝对有意义,但是被广泛使用。所以我想这只是个人喜好。谢谢你的解决方案!很好!说到
.1-3-6-sm
前三分之六(th?)-sm
看起来也没什么意义。。。对于人类可读的东西,我更喜欢像
.2nd-of-10
之类的东西(假设用例不能包含在像
。这个漂亮的章节左栏
)这样的全语义名称中)。很好,你找到了解决问题的方法。仅作为参考,您可以使用Ctrl+K来格式化代码块,而不是
`
.@{columns-class} {
   .column(@columns-number);
}