class BankCardInfo
Constants
- Banks
- CardType
Public Class Methods
bank_card_info(card_number=nil)
click to toggle source
获取银行卡号的相关信息
# File lib/bank_card_info.rb, line 1808 def self.bank_card_info(card_number=nil) return {} if card_number.nil? return {} if !card_number.is_a?(String) card_number = card_number.strip # 匹配符合正则的银行卡元素 card_hash = BankCardInfo::Banks.find do |bank| bank[:patterns].any? do |obj| self.is_match(card_number, obj[:reg]) end end if card_hash card_type_hash = card_hash[:patterns].find do |obj| self.is_match(card_number, obj[:reg]) end card_type = card_type_hash[:cardType] card_type_name = BankCardInfo::CardType[card_type.to_sym] { bank_name: card_hash[:bankName], bank_code: card_hash[:bankCode], card_number: card_number, card_type: card_type, card_type_name: card_type_name } else {} end end
banks()
click to toggle source
获取支持的银行卡
# File lib/bank_card_info.rb, line 1837 def self.banks BankCardInfo::Banks.map{|obj| {bank_name: obj[:bankName], bank_code: obj[:bankCode]}} end
is_match(card_number, regexp)
click to toggle source
卡号是否匹配正则
# File lib/bank_card_info.rb, line 1802 def self.is_match(card_number, regexp) obj = card_number.match(regexp) !obj.to_s.empty? end