Format texte

Résolu
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

4 réponses

  1. 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;
    	}
    
    1. 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
      1. 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