Sha256: 735c32136e58ea86872f75ac96619d32364bb6e6ed7bc925702db6f5d2209659
Contents?: true
Size: 775 Bytes
Versions: 56
Compression:
Stored size: 775 Bytes
Contents
export default class PhoneNumber { constructor(number) { this.rawNumber = number; this.cleanedNumber = cleanNumber(number); } number() { return this.cleanedNumber; } areaCode() { return this.cleanedNumber.substr(0, 3); } toString() { return '(' + this.areaCode() + ')' + ' ' + exchangeCode(this.cleanedNumber) + '-' + subscriberNumber(this.cleanedNumber); } } function cleanNumber(number) { const num = number.replace(/\D/g,''); if (num.length === 10) { return num; } if (num.length === 11 && num[0] === '1') { return num.substr(1); } return '0000000000'; } function exchangeCode(number) { return number.substr(3, 3); } function subscriberNumber(number) { return number.substr(6); }
Version data entries
56 entries across 56 versions & 1 rubygems