mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-06 01:18:23 +08:00
Clean up phone number formatting (#1015)
This commit is contained in:
@ -1,17 +1,16 @@
|
|||||||
// function that takes 10 digits and returns a string of the formatted phone number
|
/**
|
||||||
// e.g.: 1234567890 -> (123) 456-7890
|
* @description - function that takes 10 digits and returns a string of the formatted phone number e.g.: 1234567890 -> (123) 456-7890
|
||||||
|
* @param {string} phoneNumber
|
||||||
const formatPhoneNumber = (numbers) => {
|
* @returns {string} - Format to (XXX) XXX-XXXX pattern
|
||||||
const numbersString = numbers.toString()
|
*/
|
||||||
if ((numbersString.length !== 10) || isNaN(numbersString)) {
|
const formatPhoneNumber = (phoneNumber) => {
|
||||||
|
if ((phoneNumber.length !== 10) || isNaN(phoneNumber)) {
|
||||||
// return "Invalid phone number."
|
// return "Invalid phone number."
|
||||||
throw new TypeError('Invalid phone number.')
|
throw new TypeError('Invalid phone number!')
|
||||||
}
|
|
||||||
const arr = '(XXX) XXX-XXXX'.split('')
|
|
||||||
Array.from(numbersString).forEach(n => {
|
|
||||||
arr[arr.indexOf('X')] = n
|
|
||||||
})
|
|
||||||
return arr.join('')
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export { formatPhoneNumber }
|
let index = 0
|
||||||
|
return '(XXX) XXX-XXXX'.replace(/X/g, () => phoneNumber[index++])
|
||||||
|
}
|
||||||
|
|
||||||
|
export default formatPhoneNumber
|
||||||
|
@ -1,23 +1,15 @@
|
|||||||
import { formatPhoneNumber } from '../FormatPhoneNumber'
|
import formatPhoneNumber from '../FormatPhoneNumber'
|
||||||
|
|
||||||
describe('PhoneNumberFormatting', () => {
|
describe('Testing the formatPhoneNumber functions', () => {
|
||||||
it('expects to return the formatted phone number', () => {
|
it('expects to throw a type error', () => {
|
||||||
expect(formatPhoneNumber('1234567890')).toEqual('(123) 456-7890')
|
expect(() => formatPhoneNumber('1234567')).toThrow('Invalid phone number!')
|
||||||
|
expect(() => formatPhoneNumber('123456text')).toThrow('Invalid phone number!')
|
||||||
|
expect(() => formatPhoneNumber(12345)).toThrow('Invalid phone number!')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('expects to return the formatted phone number', () => {
|
it('expects to return the formatted phone number', () => {
|
||||||
expect(formatPhoneNumber(1234567890)).toEqual('(123) 456-7890')
|
expect(formatPhoneNumber('1234567890')).toEqual('(123) 456-7890')
|
||||||
})
|
expect(formatPhoneNumber('2124323322')).toEqual('(212) 432-3322')
|
||||||
|
expect(formatPhoneNumber('1721543455')).toEqual('(172) 154-3455')
|
||||||
it('expects to throw a type error', () => {
|
|
||||||
expect(() => { formatPhoneNumber('1234567') }).toThrow('Invalid phone number.')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('expects to throw a type error', () => {
|
|
||||||
expect(() => { formatPhoneNumber('123456text') }).toThrow('Invalid phone number.')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('expects to throw a type error', () => {
|
|
||||||
expect(() => { formatPhoneNumber(12345) }).toThrow('Invalid phone number.')
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user