[Résolu] Expression régulière pour enlever les accents..

Expression régulière pour enlever les accents.. [Résolu] - PHP - Programmation

Marsh Posté le 19-12-2005 à 08:32:41    

Bonjour à tous !
 
Je suis à la recherche d'une fonction, je pense en expressions régulières, qui vérifierait la syntaxe d'un mot, et si ce mot comporte autre chose que des lettres a-Z ou des chiffres 0-9 ( donc des accents, des apostrophes, et autres caractères ), la fonction retourne un beau false;
 
QUelqu'un a une idée ? Merci :D


Message édité par pouzy le 19-12-2005 à 11:04:04

---------------
Hello hello super jello
Reply

Marsh Posté le 19-12-2005 à 08:32:41   

Reply

Marsh Posté le 19-12-2005 à 09:45:05    

La ligne dessous te retournera vrai si il existe un caractère bizarre, tu as juste à faire not ça si tu veux que ça retourne fasle!

Code :
  1. preg_match("/[^A-z0-9]/", $taChaine);

Reply

Marsh Posté le 19-12-2005 à 10:09:19    

Euh...  
J'ai toujours un peu de mal avec les fonctions..  
Ca devrait donner un truc genre :
 

Code :
  1. function ValidPseudo($chaine)
  2. {
  3. if (preg_match("/[^A-z0-9]/", $chaine))
  4. return false;
  5. return true;
  6. }


 
?


Message édité par pouzy le 19-12-2005 à 10:21:57

---------------
Hello hello super jello
Reply

Marsh Posté le 19-12-2005 à 10:19:45    

Ca n'a pas l'air de fonctionner :/ !


---------------
Hello hello super jello
Reply

Marsh Posté le 19-12-2005 à 10:30:18    

pouzy a écrit :

Ca n'a pas l'air de fonctionner :/ !


 :non: on dit "Je n'arrive pas à le faire marcher"....
 
En plus j'ai testé ça marche ton truc!!!

Code :
  1. <?
  2. function ValidPseudo($chaine)
  3. {
  4.   if (preg_match("/[^A-z0-9]/", $chaine)){
  5.     return false;
  6.   } else {
  7.     return true;
  8.   }
  9. }
  10. $pseudo = "fkdsflkjfezrtr";
  11. if ( ValidPseudo($pseudo)){
  12.   print "Pseudo Valide...";
  13. } else {
  14.   print "Caractere incorrect dans le pseudo";
  15. }
  16. ?>


Reply

Marsh Posté le 19-12-2005 à 10:59:33    

Hihi ^^ Bizarre.. Je comprends pas trop pourquoi ça n'avait pas l'air de fonctionner chez moi.. M'enfin :
J'en ai fait une un petit peu mieux, qui fonctionne :
 

Code :
  1. function ValidPseudo($chaine)
  2.   {
  3.   if (preg_match("/[^a-zA-Z0-9-$]*/", $chaine))
  4.   return false;
  5.   return true;
  6.   }


 
Le petit problème c'est qu'elle n'accepte pas des tirets, et généralement les gens aiment bien les pseudos à tiret.. :/ Ca doit être un tout petit truc à rajouter :x
 
Merci :hello:
 
EDIT : aha, trouvé ! :) Pour ceux qui veulent :  
 

Code :
  1. function ValidPseudo($chaine) 
  2.      if (preg_match("#^([a-zA-Z0-9-]*)$#", $chaine))
  3.      { 
  4.           return true;
  5.      }
  6.      else
  7.      {
  8.      return false;
  9.      }
  10. }


 
Merci à tous ;)


Message édité par pouzy le 19-12-2005 à 11:03:42

---------------
Hello hello super jello
Reply

Marsh Posté le 19-12-2005 à 19:32:53    

function ValidPseudo($chaine)  
{  
    return( preg_match('#^[a-z0-9-]*$#i', $chaine) )
}
 
Définir le masque de recherche avec des quote ' plutot qu'avec " ... c'est "plus rapide" meme si c'est absolument negligeable.
 
retourner directement ce ke te renvoie preg_match ... c'est kand meme evident mais bon :$
 
virer les parentheses de ton masque de recherche parce ke d'une part elles ne servent a rien et d'autre part elles ralentissent l'execution de preg_match ... meme si la encore c absolument negligeable.
 
utiliser l'option i (no case sensitive) pour travailler sur un masque plus etit, execution plus rapide et tout et tout ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed