Ruby/Rails:字符串的自然增长(succ)

l3zydbqr  于 2023-05-17  发布在  Ruby
关注(0)|答案(1)|浏览(110)

我希望有连续的发票号,但在这种情况下,succ方法很糟糕(双关语)。

'427'.succ
> '428' (works!)

'2021-9'.succ
> '2022-0' (does not work)

'2021.9'.succ
> '2022.0' (does not work)

我找不到一个宝石,只有一个宝石排序字符串自然。如果没有人知道任何现有的解决方案,我将用一个自我编程的方法来回答这个问题。

wh6knrhe

wh6knrhe1#

您可以使用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"

相关问题