ruby-on-rails – 用于信用卡号的ruby字符串操作

在rails项目上工作,其中有一个订单确认字符串,其中包含除最后四位数之外的所有信用卡号码.做字符串替换的正确方法是什么?

得到这个的操作是什么?

credit_card_number = "1111111111111111"

这个?

credit_card_number = "************1111"

谢谢,

贤治

最佳答案
如果你正在使用ActiveMerchant,那么ActiveMerchant :: Billing :: CreditCard有一个名为display_number的实例方法可以做到这一点,例如XXXX-XXXX-XXXX-4338

如果不是,请复制activemerchant:

def last_digits(number)    
  number.to_s.length <= 4 ? number : number.to_s.slice(-4..-1) 
end

def mask(number)
 "XXXX-XXXX-XXXX-#{last_digits(number)}"
end

credit_card_number = "1111111111111111"

display_number = mask credit_card_number

转载注明原文:ruby-on-rails – 用于信用卡号的ruby字符串操作 - 代码日志