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

Version Path
trackler-2.0.6.0 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.18 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.17 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.16 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.15 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.14 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.13 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.12 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.11 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.10 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.9 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.8 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.7 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.6 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.5 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.4 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.3 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.2 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.1 tracks/ecmascript/exercises/phone-number/example.js
trackler-2.0.5.0 tracks/ecmascript/exercises/phone-number/example.js