正则表达式将master/visa卡与Javascript中的空格匹配

正则表达式将master/visa卡与Javascript中的空格匹配,javascript,regex,Javascript,Regex,我想用javascript编写一个Regex,它只匹配master/visa卡上的空格,如下所示: 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: { r

我想用javascript编写一个
Regex
,它只匹配master/visa卡上的空格,如下所示:

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"
            }
事件为fires,它使用上述正则表达式并根据用户输入显示消息。 下面是几个用户输入示例:

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 
给你

^(?: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
)$

来源:

您能用文字解释一下您试图实现的逻辑吗?我正在尝试验证该卡是master卡还是visa卡。输入在卡的每四个数字后面有空格。我想写一个正则表达式来验证卡号。
(?:\d{4}{3}\d{4}
?这将同时验证visa卡和master卡吗?它匹配4个数字的4次出现,用空格分隔。它将处理空格吗?