Angular 2: pipes - How to format a phone number?

前端 未结 5 1651
灰色年华
灰色年华 2020-12-14 17:18

I\'ve searched here and there, and I am not able to find something specific about formatting a phone number.

Currently, I am retrieving phone numbers form a JSON in

5条回答
  •  温柔的废话
    2020-12-14 17:37

    Building on "user5975786", here is the same code for Angular2

    import { Injectable, Pipe } from '@angular/core';
    
    @Pipe({
        name: 'phone'
    })
    
    export class PhonePipe
    {
        transform(tel, args)
        {
            var value = tel.toString().trim().replace(/^\+/, '');
    
            if (value.match(/[^0-9]/)) {
                return tel;
            }
    
            var country, city, number;
    
            switch (value.length) {
                case 10: // +1PPP####### -> C (PPP) ###-####
                    country = 1;
                    city = value.slice(0, 3);
                    number = value.slice(3);
                    break;
    
                case 11: // +CPPP####### -> CCC (PP) ###-####
                    country = value[0];
                    city = value.slice(1, 4);
                    number = value.slice(4);
                    break;
    
                case 12: // +CCCPP####### -> CCC (PP) ###-####
                    country = value.slice(0, 3);
                    city = value.slice(3, 5);
                    number = value.slice(5);
                    break;
    
                default:
                    return tel;
            }
    
            if (country == 1) {
                country = "";
            }
    
            number = number.slice(0, 3) + '-' + number.slice(3);
    
            return (country + " (" + city + ") " + number).trim();
        }
    }
    

提交回复
热议问题