IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Séparer des groupes de caractères dans une zone de saisie


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut Séparer des groupes de caractères dans une zone de saisie

    Comment faire pour séparer les champs d'une zone de saisie, une fois que l'utilisateur a fini sa saisie, ou en temps réel, par exemple pour un numéro de téléphone?
    L'utilisateur tape 0170707070 dans une zone de saisie
    et une fois qu'il perd le focus, on voit dans la zone de saisie 01 70 70 70 70

    Comment faire cela en javascript? Existe-t-il un autre moyen que ce dernier?


  2. #2
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 159
    Points : 105
    Points
    105
    Par défaut
    Sans script, je ne vois pas comment faire (sur le poste client, bien sur).
    Un exemple :
    Code html : 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
    <head>
    <script type="text/javascript"> 
    function Monscript(z) { 
    znew="";
    if (z.value.length > 0) {
       for (i=0; i < z.value.length; i+=2){
       znew+=z.value.substring(i,i+2)+" "}
    }
    z.value=znew;
    }
    </script>	
    </head>
    <body>
    <form name="monform">	
    Mon champ : &nbsp
    <input type="text" onchange="Monscript(this)" name="monchamp" />
    Tabulation : &nbsp
    <input type="text" size="1"/>
    </form>
    </body>

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut
    Merci, c'est exactement ce que je recherchai!
    Pour info, les données seront rentrées dans la base sous la forme "0170707070"
    et non sous la forme "01 70 70 70 70" ?

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Une autre façon de faire :
    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
    <script type='text/javascript'>
    function formatte(obj,group){
    var regspace=/(\s)/g;
    tempString=obj.value.replace(regspace,'')
    var reg=/([\d]{2})/g
    var regend=/\s$/
    if (tempString.length>group){
    obj.value=tempString.replace(reg,"$1 ").replace(regend,'')
    }
    }
    </script>
     
    </head>
     
    <body>
    <input id="moninput" type='text' onkeyup='formatte(this,2)' />
     
    </body>
    </html>

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut
    Merci, les deux me conviennent, l'avantage de la deuxième est que je peux choisir comment espacer mes caractères.
    Dans ces deux méthodes, comment sont ensuite enregistrées les données dans la base? Avec les espaces ou sans les espaces?


  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    la donnée transmise au serveur l'est AVEC les espaces, a toi de triter les données en php avec un ereg_replace de façon à supprimer les espaces ..

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut
    Merci, j'ai effectué les modifications nécessaires lors de l'ajout dans la base.
    Problème

  8. #8
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 159
    Points : 105
    Points
    105
    Par défaut
    La solution de SpaceFrog est bien plus chic !
    Se serait rudement utile à ma culture de lire quelques lignes commentant son l'utilisation des expressions régulières.
    Merci d'avance.

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var regspace=/(\s)/g;   //un espace
     
    var reg=/([\d]{2})/g   // une suite de deux caractères
    var regend=/\s$/        // un espace terminal

  10. #10
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 159
    Points : 105
    Points
    105
    Par défaut
    Merci SpaceFrog.
    J'ai mesuré les temps de traitement des deux solutions.
    Yapaphoto !
    Methode avec boucle for : 25 000 millisecondes pour 100 000 itérations
    Methode avec RegExp : 4 200 millisecondes pour 100 000 itérations

    Quelle leçon ! Et pour nous quel exemple

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [A-00] Compter le nombre de caractère dans une zone de texte
    Par etoileetoile dans le forum VBA Access
    Réponses: 5
    Dernier message: 23/05/2024, 17h31
  2. Réponses: 1
    Dernier message: 27/01/2015, 11h42
  3. Affichage des sauts de lignes dans une zone de texte
    Par Whombat dans le forum Langage
    Réponses: 3
    Dernier message: 25/01/2009, 02h47
  4. Chaine de caractères dans une zone rectangulaire
    Par Debault dans le forum Delphi
    Réponses: 1
    Dernier message: 28/08/2006, 23h12
  5. Réponses: 5
    Dernier message: 03/02/2006, 18h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo