我想要连续的发票号码,但在这种情况下,succ
方法很糟糕(双关语)。
'427'.succ
> '428' (works!)
'2021-9'.succ
> '2022-0' (does not work)
'2021.9'.succ
> '2022.0' (does not work)
我找不到这方面的 gem ,只有一个可以自然排序字符串的 gem 。如果没有人知道任何现有的解决方案,我很快就会用自编程的方法来回答这个问题。
最佳答案
您可以使用 String#gsub
并对匹配的数字应用 succ
:
'427'.gsub(/\D(\d+)$|^\d+$/, &:succ)
# "428"
'2021-9'.gsub(/\D(\d+)$|^\d+$/, &:succ)
# "2021-10"
'2021-624'.gsub(/\D(\d+)$|^\d+$/, &:succ)
# "2021-625"
关于ruby-on-rails - ruby /Rails : Natural increase of string (succ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70640956/