(value)
| 403 | } |
| 404 | |
| 405 | function normalizeExpiryInputForTyping(value) { |
| 406 | const digits = String(value || "").replace(/\D/g, "").slice(0, 6); |
| 407 | if (!digits) return ""; |
| 408 | if (digits.length <= 2) return digits; |
| 409 | return `${digits.slice(0, 2)}/${digits.slice(2)}`; |
| 410 | } |
| 411 | |
| 412 | function parseCardText(rawText) { |
| 413 | const text = String(rawText || "").trim(); |