How to format a phone number with jQuery

前端 未结 16 1646
执念已碎
执念已碎 2020-11-28 05:13

I\'m currently displaying phone numbers like 2124771000. However, I need the number to be formatted in a more human-readable form, for example: 212-477-10

相关标签:
16条回答
  • 2020-11-28 05:46

    Input:

    4546644645
    

    Code:

    PhoneNumber = Input.replace(/(\d\d\d)(\d\d\d)(\d\d\d\d)/, "($1)$2-$3");
    

    OutPut:

    (454)664-4645
    
    0 讨论(0)
  • 2020-11-28 05:47

    try something like this..

    jQuery.validator.addMethod("phoneValidate", function(number, element) {
        number = number.replace(/\s+/g, ""); 
        return this.optional(element) || number.length > 9 &&
            number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
    }, "Please specify a valid phone number");
    
    $("#myform").validate({
      rules: {
        field: {
          required: true,
          phoneValidate: true
        }
      }
    });
    
    0 讨论(0)
  • 2020-11-28 05:47

    Following event handler should do the needful:

    $('[name=mobilePhone]').on('keyup', function(e){
                        var enteredNumberStr=this.$('[name=mobilePhone]').val(),                    
                          //Filter only numbers from the input
                          cleanedStr = (enteredNumberStr).replace(/\D/g, ''),
                          inputLength=cleanedStr.length,
                          formattedNumber=cleanedStr;                     
                                          
                          if(inputLength>3 && inputLength<7) {
                            formattedNumber= cleanedStr.substr(0,3) + '-' + cleanedStr.substr(3,inputLength-1) ;
                          }else if (inputLength>=7 && inputLength<10) {
                              formattedNumber= cleanedStr.substr(0,3) + '-' + cleanedStr.substr(3,3) + '-' + cleanedStr.substr(6,inputLength-1);                          
                          }else if(inputLength>=10) {
                              formattedNumber= cleanedStr.substr(0,3) + '-' + cleanedStr.substr(3,3) + '-' + cleanedStr.substr(6,inputLength-1);                        
                          }
                          console.log(formattedNumber);
                          this.$('[name=mobilePhone]').val(formattedNumber);
                });
    
    0 讨论(0)
  • 2020-11-28 05:51

    Use a library to handle phone number. Libphonenumber by Google is your best bet.

    // Require `PhoneNumberFormat`.
    var PNF = require('google-libphonenumber').PhoneNumberFormat;
    
    // Get an instance of `PhoneNumberUtil`.
    var phoneUtil = require('google-libphonenumber').PhoneNumberUtil.getInstance();
    
    // Parse number with country code.
    var phoneNumber = phoneUtil.parse('202-456-1414', 'US');
    
    // Print number in the international format.
    console.log(phoneUtil.format(phoneNumber, PNF.INTERNATIONAL));
    // => +1 202-456-1414
    

    I recommend to use this package by seegno.

    0 讨论(0)
  • 2020-11-28 05:52
    var phone = '2124771000',
        formatted = phone.substr(0, 3) + '-' + phone.substr(3, 3) + '-' + phone.substr(6,4)
    
    0 讨论(0)
  • 2020-11-28 05:52

    To expand on Cruz Nunez code and add continual formatting, plus include some international phone number formats.

        $('#phone').on('input', function() {
          var number = $(this).val().replace(/[^\d]/g, '');
          if (number.length == 3) {
            number = number.replace(/(\d{3})/, "$1-");
          } else if (number.length == 4) {
            number = number.replace(/(\d{3})(\d{1})/, "$1-$2");
          } else if (number.length == 5) {
            number = number.replace(/(\d{3})(\d{2})/, "$1-$2");
          } else if (number.length == 6) {
            number = number.replace(/(\d{3})(\d{3})/, "$1-$2-");
          } else if (number.length == 7) {
            number = number.replace(/(\d{3})(\d{3})(\d{1})/, "$1-$2-$3");
          } else if (number.length == 8) {
            number = number.replace(/(\d{4})(\d{4})/, "$1-$2");
          } else if (number.length == 9) {
            number = number.replace(/(\d{3})(\d{3})(\d{3})/, "$1-$2-$3");
          } else if (number.length == 10) {
            number = number.replace(/(\d{3})(\d{3})(\d{4})/, "$1-$2-$3");
          } else if (number.length == 11) {
            number = number.replace(/(\d{1})(\d{3})(\d{3})(\d{4})/, "$1-$2-$3-$4");
          } else if (number.length == 12) {
            number = number.replace(/(\d{2})(\d{3})(\d{3})(\d{4})/, "$1-$2-$3-$4");
          }
          $(this).val(number);
        });
    
    0 讨论(0)
提交回复
热议问题