📄 16 - checking a credit card checksum.rb
字号:
require 'rubygems'require 'creditcard''5276 4400 6542 1319'.creditcard? # => true'5276440065421313'.creditcard? # => false1276440065421319.creditcard? # => false#---5276440065421313.creditcard_type # => "mastercard"#---module CreditCard def creditcard? numbers = self.to_s.gsub(/[^\d]+/, '').split(//) checksum = 0 0.upto numbers.length do |i| weight = numbers[-1*(i+2)].to_i * (2 - (i%2)) checksum += weight % 9 end return numbers[-1].to_i == 10 - checksum % 10 endendclass String include CreditCardendclass Integer include CreditCardend'5276 4400 6542 1319'.creditcard? # => true#---numbers = '5276 4400 6542 1319'.gsub(/[^\d]+/, '').split(//)# => ["5", "2", "7", "6", "4", "4", "0", "0", # => "6", "5", "4", "2", "1", "3", "1", "9"]#---checksum = 00.upto numbers.length do |i| weight = numbers[-1*(i+2)].to_i * (2 - (i%2)) checksum += weight % 9endchecksum # => 51#---numbers[-1].to_i == 10 - checksum % 10 # => true#---
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -