fe-essential-utils
Version:
Essential utils for front-end development
1 lines • 1.84 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PaymentCardUtils=void 0;var cardValidationConfig={Visa:{maxLen:19,pattern:/^[0-9]{16}$/,cvvLen:3,cvvPattern:/^[0-9]{3}$/},Mlife:{maxLen:19,pattern:/^[0-9]{16}$/,cvvLen:3,cvvPattern:/^[0-9]{3}$/},Mastercard:{maxLen:19,pattern:/^[0-9]{16}$/,cvvLen:3,cvvPattern:/^[0-9]{3}$/},"American Express":{maxLen:15,pattern:/^[0-9]{15}$/,cvvLen:4,cvvPattern:/^[0-9]{4}$/},Discover:{maxLen:19,pattern:/^[0-9]{16}$/,cvvLen:3,cvvPattern:/^[0-9]{3}$/},JCB:{maxLen:19,pattern:/^[0-9]{16}$/,cvvLen:3,cvvPattern:/^[0-9]{3}$/},"Union Pay":{maxLen:19,pattern:/^[0-9]{16,19}$/,cvvLen:3,cvvPattern:/^[0-9]{3}$/}},isPaymentCardExpired=function(e){var a="/",t=e.split(a),r=new Date,n=new Date;return t.length>1&&(n.setFullYear(t[1]),n.setMonth(t[0]-1),r>n)},getPaymentCardType=function(e){var a=e.replace(/\s+/g,"").replace(/-/g,""),t={Visa:/^4[0-9]{0,15}$/,Mastercard:/^(?: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]{0,17}$/,"American Express":/^3$|^3[47][0-9]{0,13}$/,Discover:/^6$|^601[1]?$|^65[0-9]{0,3}?$|^64[4-9][0-9]?$|^6(?:011[0-9]{0,3}|5[0-9]{0,5}|4[4-9][0-9]{0,4})[0-9]{0,10}$/,JCB:/^2[1]?$|^21[3]?$|^1[8]?$|^18[ 0 ]?$|^(?:2131|1800)[0-9]{0,11}$|^3[5]?$|^35[0-9]{0,14}$/,"Union Pay":/^(62[0-9]{0,17})$/},r="";for(var n in t)if(t[n].test(a)){r=n;break}return r},validatePaymentCardNumber=function(e){e=e||"";var a=e.replace(/\s+/g,"").replace(/-/g,"");if(!a)return!1;var t=getPaymentCardType(a);if(t){if(a.length>cardValidationConfig[t].maxLen)return!1;if(!cardValidationConfig[t].pattern.test(a))return!1}else{if(a.length>19)return!1;if(a)return!1}return!0},PaymentCardUtils={isPaymentCardExpired:isPaymentCardExpired,getPaymentCardType:getPaymentCardType,validatePaymentCardNumber:validatePaymentCardNumber};exports.PaymentCardUtils=PaymentCardUtils;