const persianDigits = '۰۱۲۳۴۵۶۷۸۹' const arabicDigits = '٠١٢٣٤٥٦٧٨٩' export function normalizeCard(value: string): string { return value .replace(/[۰-۹]/g, (digit) => String(persianDigits.indexOf(digit))) .replace(/[٠-٩]/g, (digit) => String(arabicDigits.indexOf(digit))) .replace(/[\s-]/g, '') } export function validCard(value: string): boolean { return /^\d{16}$/.test(value) } export function formatCard(value: string): string { const digits = normalizeCard(value).replace(/\D/g, '').slice(0, 16) return digits.replace(/(\d{4})(?=\d)/g, '$1 ') } export function formatIBAN(value: string): string { return value.replace(/(.{4})(?=.)/g, '$1 ') }