Bonjour,
Je souhaite écrire une fonction qui prenne en entrée une chaine de caractère quelconque, et qui, grâce à une RegExp, remplace tout ce qui n'est pas une des 26 lettres, et tout ce qui n'est pas un chiffre, par un underscore.
Merci.
Bonjour,
Je souhaite écrire une fonction qui prenne en entrée une chaine de caractère quelconque, et qui, grâce à une RegExp, remplace tout ce qui n'est pas une des 26 lettres, et tout ce qui n'est pas un chiffre, par un underscore.
Merci.
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $out = preg_replace('/[^[:alnum:]]/', '_', $in);
[:alnum:] est une classe qui représente l'ensemble des caractères alphabétiques et numériques qui est niée (négation de classe). Donc tout caractère n'appartenant pas à cet ensemble sera remplacé par un underscore.
Après, si tu veux te le faire a la main :
Mais la solution du regexp me semble nettement plus élégante ^_^
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 /** * Cette fonction prend une string et remplace tous les caracteres non alphabetique par _ * @param string $word : Le mot a traiter * @return string : Le mot propre. */ function replace_letter($word) { $new_word = ''; $i = 0; while (isset($word[$i])) { if (ctype_alpha($word[$i])) $new_word .= $word[$i]; else $new_word .= '_'; $i++; } return ($new_word); }
Surtout : elle tient en une seule ligneMais la solution du regexp me semble nettement plus élégante ^_^
mais le probleme les mec c'est que vous avais pas bien lu le sujet
lol
ou si c'est sa qu'il veut il a pas poser la bonne question car avec la classe [:alnum:] les lettres comme é,à,ç,ñ et tous type d'accent sont accepter par cette classe hors lui ne veut que
Donc tous se qui a un accent il en veut pasdes 26 lettres
il faut donc remplacer [:alnum:] par [a-zA-Z0-9] qui permet de ne garder que les 26 lettre (majuscule ou minuscule)plus tous les chiffres
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager