96 votes

Format de numéro de téléphone jQuery

Je tire un numéro de téléphone d'un fichier JSON.

Il ressemble à: 2124771000

J'ai besoin de le formater: 212-477-1000

En HTML, cela ressemble à ceci:

 <p class="phone">2124771000</p>
 

Existe-t-il des plug-ins qui peuvent faire cela, ou regex?

219voto

NULL Points 10442

Simple: http://jsfiddle.net/Xxk3F/3/

 $('.phone').text(function(i, text) {
    return text.replace(/(\d{3})(\d{3})(\d{4})/, '$1-$2-$3');
});
 

Ou: http://jsfiddle.net/Xxk3F/1/

 $('.phone').text(function(i, text) {
    return text.replace(/(\d\d\d)(\d\d\d)(\d\d\d\d)/, '$1-$2-$3');
});
 

55voto

Marc B Points 195501
var phone = '2124771000',
    formatted = phone.substr(0, 3) + '-' + phone.substr(3, 3) + '-' + phone.substr(6,4)

12voto

Trenton Bost Points 86

N'oubliez pas de vous assurer que vous travaillez avec des nombres entiers.

 var separator = '-';
$( ".phone" ).text( function( i, DATA ) {
    DATA
        .replace( /[^\d]/g, '' )
        .replace( /(\d{3})(\d{3})(\d{4})/, '$1' + separator + '$2' + separator + '$3' );
    return DATA;
});
 

3voto

indyaah Points 4006

essayez quelque chose comme ça ..

 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
    }
  }
});
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X