JSFiddle - React, Tailwind, and code Playground
by Chase Wilson
JavaScript
let US_AREA_CODES = ['951','909','714'];
let MX_AREA_CODES = [];
let formatNumberString = (numberStringOrNumber) => {
let cleaned;
if (typeof numberStringOrNumber === 'number') {
//cleaned is a string full of numbers/integers
cleaned = String(numberStringOrNumber);
}
if (typeof numberStringOrNumber === 'string') {
cleaned = numberStringOrNumber.replace(/\D/g, '');
}
// the variable cleaned will be a string full of numbers/integers
if ( cleaned[0] + cleaned[1] === '55' && cleaned.length === 10 ) {
// cleaned is a mexican phone number
}
if (cleaned[0] + cleaned[1] === '52' && cleaned.length === 12 ) {
// cleaned is a mexican phone number with the country code
}
if (cleaned[0] === '1' && cleaned.length === 11) {
// cleaned is a us country coded phone number
}
if (cleaned.length === 10 && US_AREA_CODES.includes(cleaned[0] + cleaned[1] + cleaned[2]) ) {
// cleaned is an american phone number
return cleaned[0] + cleaned[1] + cleaned[2] + '-' + cleaned[3] + cleaned[4] + cleaned[5] + '-' + cleaned[6] + cleaned[7] + cleaned[8] + cleaned[9]
}
};
console.log(formatNumberString(18008765243))
console.log(formatNumberString('951-679-1428'))
console.log(formatNumberString('55-3387-4762'))
console.log(formatNumberString('52-55-3482-9283'))