正则表达式将主/签证卡与Javascript中的空格匹配

时间:2019-07-05 04:12:23

标签: javascript regex

我正在寻找用JavaScript编写Regex的方法,该方法仅与具有以下空格的主/签证卡匹配:

5555 5555 5555 4444 (Valid input master card)
4111 1111 1111 1111  (Valid input visa card) 
3782 8224 6310 005   (Invalid input AMEX)

我在javascript中编写了一个自定义验证器,可针对以下正则表达式进行验证:

regexp: {
              regexp: /^(?:4[0-9]d{12}(?:[0-9]d{3})?|(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{d12})$/,
              message: "Only visa and master cards are allowed"
            }

该事件为火灾,它使用上述正则表达式并根据用户输入显示消息。 以下是一些用户输入的示例:

Credit Card     Sample Number                Output
Visa            4111 1111 1111 1111          Match
MasterCard       5500 0000 0000 0004         Match
American Express    3400 0000 0000 009       Invalid
Diner's Club      3000 0000 0000 04          Invalid 
Carte Blanche    3000 0000 0000 04           Invalid
Discover          6011 0000 0000 0004        Invalid
en Route          2014 0000 0000 009         Invalid
JCB               3088 0000 0000 0009        Invalid 

1 个答案:

答案 0 :(得分:0)

你在这里...

^(?:4[0-9]{12}(?:[0-9]{3})?          # Visa
 |  (?:5[1-5][0-9]{2}                # MasterCard
     | 222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}
 |  3[47][0-9]{13}                   # American Express
 |  3(?:0[0-5]|[68][0-9])[0-9]{11}   # Diners Club
 |  6(?:011|5[0-9]{2})[0-9]{12}      # Discover
 |  (?:2131|1800|35\d{3})\d{11}      # JCB
)$

来源:https://www.regular-expressions.info/creditcard.html