Bonjour,

Je débute dans les expressions régulières et j'ai un petit soucis.
Je dois formater une chaine de caractères saisie par un utilisateur.
Je dois remplacer les caractères accentués par les mêmes non accentués et les ponctuations et les espaces par des '_'.

Voici le code que j'utilise (pas complet) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
$pattern = array('/à/','/â/','/ä/','/é/','/è/','/ê/','/ë/','/ï/','/î/','/ô/','/ö/','/ù/','/ü/','/û/','/ç/','/ /');
$replace = array('a','a','a','e','e','e','e','i','i','o','o','u','u','u','c','_');
$var = preg_replace($pattern,$replace,$var_saisie);
Si je saisi une chaine avec divers caractères accentués et des espaces, ça me remplace bien les espaces mais pas les caractères accentués.
Quelqu'un pourrait m'expliquer le fonctionnement ?