zeropad()扩展建议
-
zeropad()目前只能在前面补0,在实际用途中面对各种需求应该可选择在前或后补任意字符,比如zeropad(数字,显示位数,补位字符,补位位置),其中补位位置为0时在前面补,为1时在后面补
-
我怎么感觉这个表达式本身的设计不是这个用处,只是刚好这个效果满足了大家一些使用需求啊,官网的说法是下面这个,直接看的话其实本身的这个设计就不是大家现在比较常用的那种理解吧
所以我觉得既然原表达式都局限在前面补0了,可能原本就不是如我们想的这么去使用的,所以还不如出个新表达式,效果就如你说的,不限定补0,而且还不限定只能补在数字上,用处还更广一点,就没必要破坏原来的这个表达式,这样这个原表达式能保留他的原始作用,我们也能有新表达式可以用,不过目前补位字符从以往的设计来看,似乎没法限定是单个字符,这点的规则确实就不好设计了 ,例如("abc",5,"def",1),结果该是怎样呢?是abcdef,还是截掉只剩5位,变成abcde呢?zeropad是位数不足才会补的,也就是前者,如果这个新表达式要遵循这个点,那规则上就是相当于内置了一个循环,每次在指定位置补上一次指定的补位字符串,然后判断是否大于等于指定位数,如果满足,则退出这个循环,如果不满足,则继续补位,直到满足为止。
如果是变成abcde(也就是会截掉只剩指定显示位数的情况)那我倒觉得现在也挺好实现的,毕竟有left和right表达式,例如你要补字符a在前面,然后显示位数是6位,那就是right("aaaaaa"&目标字符串,6),如果是补在后面,就换成用left(目标字符串&"aaaaaa",6)。
所以综合上面的结论的话,我个人觉得不是扩展zeropad,而是新增一个表达式,然后这个表达式的规则是“内置了一个循环,每次在指定位置补上一次指定的补位字符串,然后判断是否大于等于指定位数,如果满足,则退出这个循环,如果不满足,则继续补位,直到满足为止。”这种,当然,这个只是出于我个人分析官方说明和你提到的这个需求后得出的个人看法。
-
@欧拉欧拉 这个本来就是用于显示的,动态补位字符串不是很常用么,固定补位的话倒是不需要这个功能
-
我没说不常用啊,我是说如果这个表达式本来不是设计给我们这种用法的话,那就没有必要破坏它,直接搞一个新的表达式就效果都保留了,结果上是一样的,还不破坏原先的设计,例如那些已经用了现在这个zeropad的工程,就不需要额外做兼容,以新表达式的方式去提议难道不是被官方采纳的概率更大?
-
新增扩展都行,只要有就好~~~希望官方采纳
-
我感觉我是问题制造机,麻烦到大伙了
-
但开发中确实遇到这些需求,虽然都有办法曲线实现,但希望唤境更加完善
-
感谢两位亲的建议,这边会把两位的建议都反馈看看的。