UNPKG

@cranberry-money/shared-utils

Version:

Shared utility functions for Blueberry platform

43 lines 1.75 kB
export function isNumericOnly(str) { return /^\d+$/.test(str); } export function validatePassword(password, minLength = 8) { const lengthValid = password.length >= minLength; const notNumeric = !isNumericOnly(password); return { isValid: lengthValid && notNumeric, lengthValid, notNumeric }; } export function formatVerificationToken(token) { return token.trim().replace(/[^0-9]/g, ''); } export function validateEmailConfirmation(token, exactLength = 6) { const formattedToken = formatVerificationToken(token); const isValidFormat = new RegExp(`^[0-9]{${exactLength}}$`).test(formattedToken); return { isValid: formattedToken.length === exactLength && isValidFormat, isEmpty: formattedToken.length === 0, isValidFormat, }; } export function isValidFullName(fullName, minParts = 2) { const trimmedName = fullName.trim(); const nameParts = trimmedName.split(/\s+/); return nameParts.length >= minParts && nameParts.every((part) => part.length > 0); } export function isValidPhoneFormat(phoneNumber, minLength = 8) { const trimmedPhone = phoneNumber.trim(); return trimmedPhone.length >= minLength && /^[+\-\s\d()]+$/.test(trimmedPhone); } export function formatPhoneNumber(phoneNumber) { if (!phoneNumber) return ''; const cleaned = phoneNumber.replace(/\D/g, ''); if (cleaned.startsWith('61') && cleaned.length === 11) { const mobile = cleaned.slice(2); return `+61 ${mobile.slice(0, 3)} ${mobile.slice(3, 6)} ${mobile.slice(6)}`; } if (cleaned.length === 10) { return `(${cleaned.slice(0, 3)}) ${cleaned.slice(3, 6)}-${cleaned.slice(6)}`; } return phoneNumber.trim(); } //# sourceMappingURL=validation.js.map