Accueil > Forum > > > > Comment autoriser uniquement les caracteres alphanumeriques dans une chaine ?
Comment autoriser uniquement les caracteres alphanumeriques dans une chaine ?
lundi 31 décembre 2007 à 21:07:50 |
Comment autoriser uniquement les caracteres alphanumeriques dans une chaine ?

WizardNx
|
Salut !
Voilà, j'ai un petit probleme...
Je suis pas très très fort avec les syntaxes ereg...
Ce que je veux faire c'est interdire tout caractère qui n'est pas alphanumérique...
Caractères accentués compris.
En gros seulement abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789, rien d'autre...
Le tout, si c'est possible, sans faire une boucle qui passe en revue chaque caractere de ma chaîne...
J'avais donc fait :
$regx = "[[:punct:]]|[[:blank:]]|[[:space:]]|[[:cntrl:]]";
if(eregi($regx, $login))
{
// C'est pas bon change de login
}
Le truc c'est que cette méthode interdit beaucoup de caractere mais
laisse passer plein d'autre caracteres que je ne veux pas. J'ai donc
pensé à faire l'inverse et n'autoriser que [a-z,A-Z,0-9] ... J'ai
essayé de plein de manière différentes mais bon j'arrive pas...
Une idée ?
merci d'avance
WizardNx qui va s'arracher une touffe de cheuveux.
|
|
lundi 31 décembre 2007 à 21:58:53 |
Re : Comment autoriser uniquement les caracteres alphanumeriques dans une chaine ?

WizardNx
|
C'est bon j'ai trouvé :
if(!preg_match('`^([[:alnum:]]+)$`', $login)) { // Pas bon }
Faut que je rajoute juste un ptit truc car il me prend le caractere & mais c'est le seul apparement... Ca devrait pas être sorcier.
Par contre une bonne partie de mon cuir chevelu y est passé... C'est vraiment mal foutu les regex !!
@ plouche WizardNx.
|
|
lundi 31 décembre 2007 à 22:02:27 |
Re : Comment autoriser uniquement les caracteres alphanumeriques dans une chaine ?

neigedhiver
|
Salut,
if (preg_match('`^([a-z0-9]+)$`i', $login)) {
// C'est ok
}
else {
// C'est pas ok
}
D'une manière générale, utilise plutôt preg_* que ereg : les PCRE sont toujours plus rapides que les regex standards, à motif équivalent.
Un ptit tuto sur les pcre : http://lumadis.be/regex/tuto_pcre.php
|
|
lundi 31 décembre 2007 à 22:04:03 |
Re : Comment autoriser uniquement les caracteres alphanumeriques dans une chaine ?

neigedhiver
|
Plutôt que la classe de caractères alnum, je te recommande de lister les caractères que tu veux. Avec l'option de recherche i, la PCRE est insensible à la casse.
Avec mon motif, il n'accepte que les lettres (majuscules et minuscules) et les chiffres.
|
|
lundi 31 décembre 2007 à 22:58:36 |
Re : Comment autoriser uniquement les caracteres alphanumeriques dans une chaine ?
|
lundi 31 décembre 2007 à 23:02:31 |
Re : Comment autoriser uniquement les caracteres alphanumeriques dans une chaine ?

WizardNx
|
J'ai un autre probleme là...
Byzarrement il accepte le &... mais pire, si je mets un &, derrière je peux rajouter n'importe quel caractère ca va passer.... :(
|
|
mardi 1 janvier 2008 à 01:51:10 |
Re : Comment autoriser uniquement les caracteres alphanumeriques dans une chaine ?

malalam
|
Hello,
ctype_alnum() sera plus efficace.
|
|
mardi 1 janvier 2008 à 18:21:15 |
Re : Comment autoriser uniquement les caracteres alphanumeriques dans une chaine ?

WizardNx
|
Salut et bonne année :) Pour ctype_alnum() j'ai lu dansd la doc "En terme de langage
C
, les lettres
sont
[A-Za-z]
et cette fonction est équivalente à
preg_match('/^[a-z0-9]*$/i', $text)
." J'ai quand même essayé et je me retrouve avec le même probleme, tout marche bien, mais le caractère & passe tranquil et après lui je peux rajouter n'importe quel caractère qui ne passerai pas normalement et ca passe... Je comprends pas pour ce pµt@!|\| de &   @plouche WizardNx.
|
|
mardi 1 janvier 2008 à 19:38:00 |
Re : Comment autoriser uniquement les caracteres alphanumeriques dans une chaine ?

WizardNx
|
Je vous ai mis le bout de code en ligne pour que vous puissiez tester, c'est plus parlant :
http://www.icreativ.com/regex/
faites des essais :
azerty => ca passe aze,rty => ca passe pas azerty& => ca passe alors que ca ne devrait pas azerty&;,:,,:;, => ca passe aussi azerty;,,:;,&:,:;,: => ca passe pas
On dirait que le caractère & fait s'arreter l'analyse de la chaine... que ce soit avec preg_match, ereg, eregi, ctype_alnum.....
:/
@ plouche Nx.
|
|
mercredi 2 janvier 2008 à 09:23:32 |
Re : Comment autoriser uniquement les caracteres alphanumeriques dans une chaine ?

malalam
|
Tu me pardonneras, mais moi : <?php echo (int)ctype_alnum('azerty&'); echo (int)ctype_alnum('azerty&;,:,,:;,'); ?> ça me renvoie 0 dans les 2 cas.
|
|
Cette discussion est classée dans : chaine, caracteres, uniquement, autoriser, alphanumeriques
Répondre à ce message
Sujets en rapport avec ce message
Delimiteur de chaine de caracteres [ par phpwankenobi ]
Bonjour,Je ne sais pas comment utiliser le dlimiteur "\" pour delimiter les chaines de caracteres, en clair je souhaite recuperer et/ou passer correct
Chaine de caracteres [ par JoJo738 ]
Bonsoir, Je cherche une fonction permettant de faire un tableau avec une chaine de caracteres. De sorte que j'obtienne : $chaine = 'aaabacddc';Array(
Chaine de caracteres [ par bizzard4 ]
Bonjour !J'ai une formulaire avec un input qui prend le chemin d'une image en local.. Le resultat est par exemple : C:\easyphp\www\news\images\test.jp
Probleme de caracteres [ par LaurentKOogar ]
Bonjour,Je lis un Flux XML et dans la recuperation des datas j'ai des caracteres qui pour moi sont totalement inconnu: é => é ç => çDon
Couper uen chaine de caracteres [ par SatanCorporation ]
Salut a tous!!!!comment je peux faire pour couper uen chaine de caracteres apres que n soit egal a n en coupant celle ci au mot suvant :$mavariable="1
chaine de caracteres [ par cyberastuces ]
Bonjour,Voila je cherche comment afficher un message si un chaine de caracteres contien que des espace et aucun caracteres.J'ai penser à :if(!eregi( "
enregistrer une chaine de caracteres dans un stream [ par Yossi ]
Bonjour, je voudrais savoir comment enregistrer une chaine de caracteres dans un stream sans passer par un fichier. Ce que je veux c'est le contra
Ajouter des points de suspension dans une chaine de caracteres issue d'un BDD [ par pfl34 ]
Bonsoir à tous, Je dois afficher un tarif pour plusieurs produits. Je ne maitrise pas la saisie des différents éléments (c'est le client). Pour faire
recherche chaine decaractere [ par ju0123456789 ]
Bonjour J'ai une question toute bete, je souhaite faire un controle de chaine de caractere, controler que la chaine n'a uniquement que des caracteres
Bug dans modification de chaine de caracteres [ par eikichi ]
Bonjour a tous, J'ai un petit probleme avec la fonction substr_replace. Dans la fonction addSpace que vous pourrez voir ci-dessous, je ne parviens pa
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|