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 :

ne garder que l'alpha


Sujet :

JavaScript

  1. #1
    Membre �prouv� Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par d�faut ne garder que l'alpha
    Bonjour,

    Sur un formulaire, je demande le pr�nom. je veux r�cup�rer que la partie alpha quelque soit les erreurs de saisie (espace en trop, ponctuation, caract�re sp�ciaux)

    J'ai donc fait :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    if(!formulaire_champ.value.match( [a-zA-Z] )){alert("Erreur")}
    Mais il accepte tout, c'est une vrai passoire.

    Merci pour vos �claircissements

  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Attention � la syntaxe de ta regexp

    Soit tu utilises un litt�ral entre "/", soit tu utilises une chaine, mais l� ce que tu passes en argument � match n'est ni une chaine ni une regexp.

    Je te conseillerais donc plut�t quelque chose comme :
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    if ((/[^a-z\-]/i).test(formulaire_champ.value)) {
       alert("Le prénom saisi comporte des caractères invalides");
    }
    De plus, comme tu le vois, je te conseillerais d'utiliser Regexp.test plut�t que String.match, dans la mesure o� ce n'est qu'un test bool�en au final, et que tu n'as pas besoin du "compte-rendu d�taill�" que renvoie match.

    Autre d�tail : tu ne veux pas accepter les "-" ? Et mon pote Jean-Claude alors ? (je l'ai ajout� � la regexp dans mon exemple, mais si pour une quelconque raison �a ne te plaisait pas, garde
    J'en ai m�me profit� pour te sugg�rer un message un peu plus "informatif"

  3. #3
    Membre �prouv� Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par d�faut
    Merci.

    Pardon pour ton pote jean-claude, mais je dois enregistrer � la norme postal, c'est � dire en majuscule, sans accent, sans ponctuation ni caract�res sp�ciaux.

    Donc le plus simple ce serait que je remplace tout � la saisie pour ne garder que les lettres

    Donc quelque chose comme

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    formulaire_champ.value.replace(/[^a-z]/i, '')
    Mais il faudrait que je puisse dire ce qui est diff�rent de /[^a-z]/i, doit �tre remplac� par des espaces et ensuite ne garder qu'un seul espace entre chaque mot.

  4. #4
    Membre �prouv� Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par d�faut
    Jean claude sans "-", donc avec un espace ne passe pas

    Pour accepter espace c'est "\s" je crois.

    mon expression va donc �tre


  5. #5
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Heu... attends

    On parlait au d�part d'un test affichant un alert. L�, on est dans l'automatisation avec un replace.
    Alors donc ... l'utilisateur est cens� corriger ou bien c'est le JS ? ^^

    Sinon, � part �a attention, pour d�signer un espace, utilise un vrai espace, pas "\s", � moins que tu veuilles aussi accepter les tabulations, retours chariot, etc.

    Enfin, pour que ton replace fonctionne sur toutes les occurrences de la regexp dans la chaine (par exemple en cas de "Jean-Fran�ois-Xavier" ou autre bizarrerie), ajoute le modificateur "g" apr�s le litt�ral de la regexp (� c�t� du "i")

  6. #6
    Membre �prouv� Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par d�faut
    Oui au d�part c'�tait un alert, mais ta remarque sur ton ami Jean-claude �tait bonne.

    Plut�t que d'afficher un alerte, autant corriger en JS la saisie.

    Je ne sais pas comment faire, mais j'ai retenu l'id�e.

    C'est bien d'un espace entre chaque mot dont j'ai besoin, pas d'une tabu ou d'un saut de ligne.

    Et pour Jean fran�ois xavier, mon expression ne fonctionne pas en faisant Si je veux remplacer tout ce qui n'est pas alpha je fais ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    champ.replace(/[^a-z\s]/i, ' ')

  7. #7
    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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    champ.replace(/[^a-z ]/i, ' ')

    ne remplacera pas les -
    mais je ne vois pas l'int�r�t de remplacer un espace par un espace ...
    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 !

  8. #8
    Membre �prouv� Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par d�faut
    Jean-fran�ois-xavier doit devenir jean fran�ois xavier

    Jean_yes doit devenir jean yves

    Jean-claude@ avec un caract�re mal saisie "@" doit devenir jean claude

    etc...

  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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    champ.replace(/[^a-z]/i, '')
    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 !

  10. #10
    Membre �prouv� Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par d�faut
    Merci beaucoup.

    Il me perdait le "�" de jean-fran�ois-xavier et ne rempla�ait qu'un seul "-", alors j'ai fait comme �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    formulaire_champ = formulaire.client_prenom.value.replace(/[^a-zA-Z0-9Ç]]/ig, ' ');
    De plus tous les caract�res sp�ciaux sont supprim�s

  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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    formulaire_champ = formulaire.client_prenom.value.replace(/[^a-zç-]]/ig, ' ');
    devrait suffire...
    je pense que tu devras aussi rajouter les caract�res accentu�s ...
    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 !

  12. #12
    Membre �prouv� Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par d�faut
    J'esp�re ne rien avoir oubli� :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var formulaire_champ = formulaire.client_prenom.value.replace(/[^a-zÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ]/ig, ' ');
    Merci

  13. #13
    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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    a priori si tu mets i ... pas besoin de mettre les majuscules ?
    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 !

  14. #14
    Membre �prouv� Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par d�faut
    Ok j'ai vu "i" c'est insensible � la casse

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var formulaire_champ = formulaire.client_prenom.value.replace(/[^a-zàáâãäåòóôõöøèéêëçìíîïùúûüÿñ]/ig, ' ');

  15. #15
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Tant qu'� faire le tour des caract�res acceptables pour un pr�nom, y'en a qui vont dire que c'est pour pinailler mais...

    > � et � (par exemple pour "L�titia")

    Par contre, je crois avoir lu quelquepart...
    Citation Envoy� par lodan
    mais je dois enregistrer � la norme postal, c'est � dire en majuscule, sans accent, sans ponctuation ni caract�res sp�ciaux.
    nous v'la beaux

  16. #16
    Membre �prouv� Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par d�faut
    Ben oui, la norme postal n'accepte pas tout pour que les trieuses automatiques puissent reconna�tre les caract�res.

    Tout cela est aussi vrai pour les champ d'adresse, le nom et le pr�nom n'�tant qu'un cas d'�cole.

    Merci � tous.

  17. #17
    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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    sans accent ... alors faut faire une fonction callbalck dans le replace avec un array litt�ral pour les remplacements ...
    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 !

  18. #18
    Membre �prouv� Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par d�faut
    �a donnerai quelque chose comme cela ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    function retirerAccent(data)
    {
    var avec_accent = new Array("À","Á","Â","Ã","Ä","Å","à","á","â","ã","ä","å","Ò","Ó","Ô","Õ","Ö","Ø","ò","ó","ô","õ","ö","ø","È","É","Ê","Ë","è","é","ê","ë","Ç","ç","Ì","Í","Î","Ï","ì","í","î","ï","Ù","Ú","Û","","Ü","ù","ú","û","ü","ÿ","Ñ","ñ");
    var sans_accent = new Array("A","A","A","A","A","A","a","a","a","a","a","a","O","O","O","O","O","O","o","o","o","o","o","o","E","E","E","E","e","e","e","e","C","c","I","I","I","I","i","i","i","i","U","U","U","","U","u","u","u","u","y","N","n");
    return data.replace(avec_accent, sans_accent);
    }
    var formulaire_champ = retirerAccent(formulaire.client_prenom.value);
    var formulaire_champ = formulaire_champ.replace(/[^a-z]/ig, ' ');

  19. #19
    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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    non ...
    le principe du strtr de php ne pass pas en js
    il faut passer par un callback dans un replace avec une regexp
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var TabSpec = {"à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","è":"e","é":"e","ê":"e","ë":"e","ç":"c","ì":"i","í":"i","î":"i","ï":"i","ù":"u","ú":"u","û":"u","ü":"u","ÿ":"y","ñ":"n","-":" ","_":" "}; 
     
    function replaceSpec(Texte){
    	var reg=/[ÀÁÂÒÓÔÕÖØòÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ_-]/g; 
    	return Texte.replace(reg,function(){ return TabSpec[arguments[0].toLowerCase()];}).toLowerCase();
     	}
     
    var TestTexte="ÀÁÂÒÓÔÕÖØòÒÓÔÕ-ÖØòó_ôõöøÈÉÊËèéêëÇçÒÓÔÕÖØòÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ"
    alert(replaceSpec(TestTexte))
    [edit] petit modif pour tout convertir en lowerCase
    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 !

  20. #20
    Membre �prouv� Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par d�faut
    J'ai fait une modif pour avoir majuscule ou minuscule et �a marche

    Merci

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. condition: ne garder que certains alpha-numerique
    Par bibi5883 dans le forum D�buter
    R�ponses: 8
    Dernier message: 12/09/2007, 16h30
  2. R�ponses: 4
    Dernier message: 15/06/2007, 14h58
  3. Ne garder que le plus grand
    Par mobscene dans le forum Langage
    R�ponses: 30
    Dernier message: 23/12/2005, 01h23
  4. selection avec group by mais ne garder que ...
    Par Larson dans le forum Langage SQL
    R�ponses: 13
    Dernier message: 22/06/2005, 17h23
  5. [Oracle 8i] ne garder que certains enregistrements (COUNT ?)
    Par delphim dans le forum Langage SQL
    R�ponses: 13
    Dernier message: 23/02/2005, 14h30

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