Advertisement
puggan

nrFormat.ts

Mar 25th, 2020
1,152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     const nrFormat = (nr: string) => {
  2.         const endFormat = (nr: string) => {
  3.             const l = nr.length;
  4.             if(l > 9) {
  5.                 return nr.substr(0, 3) + ' ' + nr.substr(3, 3) + ' ' + endFormat(nr.substr(6));
  6.             }
  7.             if(l > 6) {
  8.                 return nr.substr(0, 3) + ' ' + endFormat(nr.substr(3));
  9.             }
  10.             if(l === 6) {
  11.                 return nr.substr(0, 2) + ' ' + nr.substr(2, 2) + ' ' + nr.substr(4);
  12.             }
  13.             if(l > 3) {
  14.                 return nr.substr(0, l - 2) + ' ' + nr.substr(l - 2);
  15.             }
  16.             return nr;
  17.         }
  18.         const svFormat = (nr: string) => {
  19.             const prefixes = ['200', '20', '900', '90', '8', '10', '11', '13', '16', '18', '19', '21', '23', '26', '31', '33', '35', '36', '40', '42', '44', '46', '54', '60', '63', '99'];
  20.             for(const prefix of prefixes) {
  21.                 if(nr.substr(0, prefix.length) === prefix) {
  22.                     return prefix + '-' + endFormat(nr.substr(prefix.length));
  23.                 }
  24.             }
  25.             return nr.substr(0, 3) + '-' + endFormat(nr.substr(3));
  26.         };
  27.         const digits = nr.replace(/\D/g, '');
  28.         if(digits[0] === '0') {
  29.             return '+46 (0) ' + svFormat(digits.substr(1));
  30.         }
  31.         if (digits[0] !== '4' || digits[1] !== '6') {
  32.             return nr;
  33.         }
  34.         if (digits[2] === '0') {
  35.             return '+46 (0) ' + svFormat(digits.substr(3));
  36.         }
  37.         return '+46 (0) ' + svFormat(digits.substr(2));
  38.     };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement