UNPKG

react-native-moyasar-sdk

Version:

Official React Native Moyasar SDK - Integrate Credit Cards, Apple Pay, Samsung Pay, and STC Pay with simple interfaces for a seamless payment experience in your React Native app

53 lines (52 loc) 1.59 kB
"use strict"; import { CreditCardNetwork } from "../models/credit_card_network.js"; import { getCreditCardNetworkFromNumber } from "./credit_card_utils.js"; export function formatCreditCardNumber(number) { const cardNetwork = getCreditCardNetworkFromNumber(number); const regexMatches = number.match(/\d{4,16}/g); const match = regexMatches && regexMatches[0] || ''; const parts = []; if (cardNetwork === CreditCardNetwork.amex) { if (number.length > 4) { parts.push(number.substring(0, 4)); if (number.length > 10) { parts.push(number.substring(4, 10)); parts.push(number.substring(10, number.length)); } else { parts.push(number.substring(4, number.length)); } } else { parts.push(number); } } else { for (let i = 0, len = match.length; i < len; i += 4) { parts.push(match.substring(i, i + 4)); } } if (parts.length) { return parts.join(' '); } else { return number; } } export function formatExpiryDate(expiryDate) { if (expiryDate.length > 2) { expiryDate = `${expiryDate.slice(0, 2)} / ${expiryDate.slice(2)}`; } return expiryDate; } export function formatMobileNumber({ cleanedNumber }) { if (cleanedNumber.length <= 3) { // XXX return cleanedNumber; } else if (cleanedNumber.length <= 6) { // XXX XXX return `${cleanedNumber.slice(0, 3)} ${cleanedNumber.slice(3)}`; } else { // XXX XXX XXXX... return `${cleanedNumber.slice(0, 3)} ${cleanedNumber.slice(3, 6)} ${cleanedNumber.slice(6)}`; } } //# sourceMappingURL=formatters.js.map