Sha256: a4f3ac5b71db58e548b0a91f37a226652925897f80c243b0b45e846a0ad6e6f0

Contents?: true

Size: 893 Bytes

Versions: 141

Compression:

Stored size: 893 Bytes

Contents

'use strict';

var Phone = module.exports = function Phone(number) {
  this.rawNumber = number;
  this.cleanedNumber = this.cleanNumber(number);
};

Phone.prototype.cleanNumber = function (number) {
  var num = number.replace(/\D/g, '');

  if (num.length === 10 && num[0] >= 2 && num[3] >= 2) {
    return num;
  } else if (num.length === 11 && num[0] === '1') {
    return num.substr(1, num.length);
  }
  return null;
};

Phone.prototype.number = function () {
  return this.cleanedNumber;
};

Phone.prototype.areaCode = function () {
  return this.number().substr(0, 3);
};

Phone.prototype.exchangeCode = function () {
  return this.number().substr(3, 3);
};

Phone.prototype.subscriberNumber = function () {
  return this.number().substr(6, 4);
};

Phone.prototype.toString = function () {
  return '(' + this.areaCode() + ') ' + this.exchangeCode() + '-' + this.subscriberNumber();
};

Version data entries

141 entries across 141 versions & 1 rubygems

Version Path
trackler-2.2.1.159 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.158 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.157 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.156 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.155 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.154 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.153 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.152 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.151 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.150 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.149 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.148 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.147 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.146 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.145 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.144 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.143 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.142 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.141 tracks/javascript/exercises/phone-number/example.js
trackler-2.2.1.140 tracks/javascript/exercises/phone-number/example.js