Format texte

Résolu/Fermé
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 6 juil. 2011 à 14:59
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 7 juil. 2011 à 10:44
Bonjour,

Est-il possible en javascript de formater un texte ?
J'ai une clé de 25 caractère que je souhaiterai séparer par des tirets "-" entre chaque 5 caractères.
Est-ce gérable en javascript svp ?

Ex:
J9JQK9BQT997JYXJC8MGCMHQG deviendra J9JQK-9BQT9-97JYX-JC8MG-CMHQG

A voir également:

4 réponses

Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
Modifié par Camuke le 7/07/2011 à 09:30
Je t'ai fait sa, sa format le texte de la cellule lorsqu'elle perd le focus (l'utilisateur clic ailleur)
<html>   
<head>   
 <title>test</title>   
 <meta http-equiv="Content-type" content="text/html; charset=utf-8" />   
 <script type="text/javascript">  
 function formatTexte(chaine) {  
  var p1 = chaine.substring(0,5);    
  var p2 = chaine.substring(5,10);    
  var p3 = chaine.substring(10,15);    
  var p4 = chaine.substring(15,20);    
  var p5 = chaine.substring(20,25);    
  document.getElementById('Valid').value = p1 + '-' + p2 + '-' + p3 + '-' + p4 + '-' + p5;  
  }  
 </script>   
</head>  
<body>  
 <input name="Valid" type="text" id="Valid" maxlength="29" onChange="javascript:formatTexte(this.value.toUpperCase());" value=""/>  
</body>  
</html> 


Si c'est pas se que tu veux, explique bien se que tu veux au final
1
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
Modifié par Camuke le 6/07/2011 à 17:54
Bien sur que c'est possible:
   
var chaine = "J9JQK9BQT997JYXJC8MGCMHQG";  
 var p1 = chaine.substring(0,5);  
 var p2 = chaine.substring(5,10);  
 var p3 = chaine.substring(10,15);  
 var p4 = chaine.substring(15,20);  
 var p5 = chaine.substring(20,25);  
 chaine = p1 + '-' + p2 + '-' + p3 + '-' + p4 + '-' + p5;  


Tu peux également faire sa avec une boucle:
	var chaine = "J9JQK9BQT997JYXJC8MGCMHQG";
	var chaineFinal = "";
	for(var i = 0; i < 21; i++) {
		chaineFinal = chaineFinal + chaine.substring(i, i+5);
		if(chaine.substring(i+5, i+10) != "") {
			chaineFinal = chaineFinal + '-'; 
		}
		i = i+4;
	}
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
6 juil. 2011 à 18:10
Merci pour ta réponse Camuke,

Donc je fais :
<script>var chaine = "J9JQK9BQT997JYXJC8MGCMHQG";  
 var p1 = chaine.substring(0,5);  
 var p2 = chaine.substring(5,10);  
 var p3 = chaine.substring(10,15);  
 var p4 = chaine.substring(15,20);  
 var p5 = chaine.substring(20,25);  
 chaine = p1 + '-' + p2 + '-' + p3 + '-' + p4 + '-' + p5;</script>

dans mon body et comment je l'appel dans la zone de texte :
<input name="Valid" type="text" id="Valid" maxlength="29" onKeyUp="javascript:this.value=this.value.toUpperCase();" />


Tu peux m'aider d'avantage stp ?
J'ai 4000 clé à insérer dans ce format, var chaine = "" contiendra quoi ? :s
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
7 juil. 2011 à 10:44
C'est exactement ce que je veux ^^
Merci infiniment !
0