@t7/utils
Version:
Utility methods for T7 components.
53 lines (39 loc) • 776 B
JavaScript
// Dependencies.
import { exists } from './'
/*
Helper to format US phone number.
BEFORE:
- "333224444"
AFTER:
- "333-22-4444"
*/
const formatSSN = (value) => {
// Early exit.
if (!exists(value)) {
return ''
}
// To string.
value = String(value)
// Clean up.
value = value.replace(/^-/, '')
value = value.replace(/[^0-9-]/, '')
value = value.replace(/-+/g, '-')
// Numbers only.
const numbersOnly =
value.replace(/\D/g, '').slice(0, 9)
// Close enough?
if (numbersOnly.length === 9) {
value = numbersOnly
}
// Format.
value = value.replace(
/^(\d{3})(\d{2})(\d{4})/,
'$1-$2-$3'
)
// Cap length.
value = value.slice(0, 11)
// Expose string.
return value
}
// Export.
export default formatSSN