salut,
je demande si on peut faire une fonction pour inserer un espace apres chaque 2 caractere c'est exactement pr une zone de texte qui contient le numero de telephone.
Merci
salut,
je demande si on peut faire une fonction pour inserer un espace apres chaque 2 caractere c'est exactement pr une zone de texte qui contient le numero de telephone.
Merci
Pas à ma connaissance tu es obligé d'ajouter des tout les 2 chiffres
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <script language="javascript"> function Telephone(ndt) { if(isNaN(ndt*1)) { return false; } else { ndt = ndt.toString(); } var newTel = ""; var count = 0; for(i=0; i!=ndt.length; i++) { switch(count) { case 0: newTel+=ndt.charAt(i); count++; break; case 1: newTel+=ndt.charAt(i); count++; break; case 2: newTel+=" "+ndt.charAt(i); count=1; break; } } return newTel; } var MonNumeroDeTel = "0607080910"; alert(MonNumeroDeTel); // 0607080910 alert(Telephone(MonNumeroDeTel)) // 06 07 08 09 19 </script>
salut,
je ne sais pas comment utiliser ce code, car je veux qu'il marche onkeyup. J'ai esssayé de le tester mais il m'a rien donné.
Je te propose ca (sur onblur plutot que onkeydown, c'est moins contraignant)
Code : Sélectionner tout - Visualiser dans une fenêtre à part Saisir tel : <input type="text" size="15" onblur="return tel(this, '.')" />
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function tel(element, separator) { var newvalue = ""; for (var i = 0; i < element.value.length; i++) { if ((i > 0) && (i % 2 == 0)) { newvalue += separator; } newvalue += element.value.charAt(i); } element.value = newvalue; return true; }
Salut
merci pr le code mais il me donne point comme separateur, est ce que je peux faire espace comme separateur je ne sais pas koi changer.
oups rE salut
c'est reglé merci, je viens de voir le '.' et je l'ai changé par espace.
Ben oui l'avantage de cette méthode c'est que tu mets ce que tu veux en séparateur
on aurait aussi pu faire un split sur un regExp {2} ...
suivi d'un join avec le séparateur voulu ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
Comment déclares tu ta regExp ?
J'ai essayé différents trucs mais ca marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part var e = new RegExp("{2}", "g");
Code : Sélectionner tout - Visualiser dans une fenêtre à part var e = new RegExp(".{2}", "g");
Code : Sélectionner tout - Visualiser dans une fenêtre à part var e = new RegExp("^.{2}", "g");
Je sais pas je suis une bille en regExp mais je l'ai déja vu faire ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
Avec le split ca me parait impossible par contre on peut utiliser le replace comme ceci :
En supposant que la chaine fait 10 caracteres :
Je propose ca comme méthode (car il y avait un bug si on rentrait/sortait plusieurs fois de la zone) donc sur le onblur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var e = new RegExp("(..)(..)(..)(..)(..)", "g"); element.value = element.value.replace(e, "$1"+separator+"$2"+separator+"$3"+separator+"$4"+separator+"$5");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 function formatterTelephone(element, separator) { // 1. On ne garde que les chiffres var theValue = element.value.replace(/[^\d]/g, ""); // 2. On vérifie la longueur if (theValue.length == 10) { // 3. On formatte var e = new RegExp("(..)(..)(..)(..)(..)", "g"); element.value = theValue.replace(e, "$1"+separator+"$2"+separator+"$3"+separator+"$4"+separator+"$5"); } else { element.value = ""; } return true; }
Bien plus simple (avec le onkeydown) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <script language="javascript"> function Telephone(kval, sep) { if((kval.length == 2 || kval.length == 5 || kval.length == 8 || kval.length == 11)) { kval += sep; } else if(event.keyCode==8) { return true; } return kval; } </script> <input type="text" id="tel" value="" onkeydown="if(this.value.length<14&&event.keyCode!=8) this.value=Telephone(this.value,' '); else if(event.keyCode==8) return true; else if(this.value.length>13) return false;">
Sous IE mais sous FF la gestion des "event" est différente
Je suis tombé sur ce fil quand j'ai fait une recherche google, donc voilà une manière simple de faire, non optimisée bien sûr:
En gros, on transforme '0123456789' en '0 1 2 3 4 5 6 7 8 9' puis on utilise un replace global avec une regexp pour enfin obtenir '01 23 45 67 89'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 function formatFrenchPhoneNumber(number: string) { return number.split('').join(' ').replace(/([0-9]) ([0-9])\b/g, '$1$2') }
Ça fait super longtemps que je m'étais pas connecté au site
Si ça c'est pas du déterrage ...
J'en profite car depuis 2008 j'ai un peu évolué sur les regexp...
ou de façon plus moderne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 var MonNumeroDeTel = "0607080910"; function FrTel(tel){ return tel.replace(/(\d\d(?!$))/g,"$1 "); } console.log(FrTel(MonNumeroDeTel) );
:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var MonNumeroDeTel = "0607080910"; var FrTel = (tel,sep) => tel.replace(/(\d\d(?!$))/g,"$1"+sep); console.log(FrTel(MonNumeroDeTel," ") );
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager