2016-04-10 3 views
-3

私は、正規表現を使用して特定のクレジットカードフォーマットを検証する必要がある課題があります。例えばMasterCardは、16桁の数字を持っている5から始まり、15桁の数字が続いているので、次のように正規表現は次のようになります。正規表現を使用してクレジットカード形式を検証していますか?

\b5[0-9]{15}\b 

何以下のクレジットカード形式の正規表現でしょうか?

ダイナースクラブ:クレジットカードが14桁を有し、始まる301、302、303、304、305、36または38のいずれか

JCB:クレジットカードが2131または1800のいずれかで始まる15桁の数字のいずれかを有する、または16桁で始まり35から始まる

ありがとう!

答えて

1

これは、(正規表現バディによって提供される)塩基の全てをカバーすべきである:

^(?: 
(?<visa>4\d{3}[ -]*\d{4}[ -]*\d{4}[ -]*\d(?:\d{3})?) | 
(?<mastercard>5[1-5]\d{2}[ -]*\d{4}[ -]*\d{4}[ -]*\d{4}) | 
(?<discover>6(?:011|5[0-9]{2})[ -]*\d{4}[ -]*\d{4}[ -]*\d{4}) | 
(?<amex>3[47]\d{2}[ -]*\d{6}[ -]*\d{5}) | 
(?<diners>3(?:0[0-5]|[68][0-9])\d[ -]*\d{6}[ -]*\d{4}) | 
(?<jcb>(?:2131|1800)[ -]*\d{6}[ -]*\d{5}|35\d{2}[ -]*\d{4}[ -]*\d{4}[ -]*\d{4}) 
)$ 
関連する問題