Ruby/Rails: 字符串自然增加(succ)
Ruby/Rails: Natural increase of string (succ)
我想要连续的发票编号,但在这种情况下 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"
我想要连续的发票编号,但在这种情况下 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"