Est-ce qu'une chaine est valide ?

Fermé
berkovitz - 30 juil. 2014 à 14:08
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 - 3 août 2014 à 19:31
Bonjour,

Je cherche à analyser, si une chaine est valide dans plusieurs cas de figure différent.
Mais j'aimerais éviter d'avoir à tester si chaque caractère est entre x et y, ou si count_chars retourne 1 ou ceci mais 0 pour cela.

En fait je cherche à valider la syntaxe pour un fichier de conf, que les utilisateurs pourront modifier, et il ne faut pas l'enregistrer s'ils ont fait une erreur.

un exemple:
si la ligne commence par le caractère '[' alors elle doit se terminer par ']' et doit contenir une fois (et une fois seulement) ':' et au minimum une fois '/'. Le texte se trouvant entre '[' et ':' ne doit contenir que a-z , A-Z 0-9 et '-' et '_'
et si on tombe sur '#' (le signe pour les commentaire) il doit se trouver après ']'

Comment différencier du text valide ( "sapristi-04" ) du texte invalide, ("sapristi.04"/"sapristi!04"/"sapristi+04"/ect... ) sans avoir à scanner toutes les lettres et de lever-baisser des flags ?

J'ai regardé un peu niveau filter_var mais à priori rien ne correspond.

Donc au final dans cette chaine, on a un peu de tout. des caractères spéciaux , qu'on peut rencontrer un peu partout , dont certain peuvent être valide, d'autre pas.


Merci pour votre aide.

1 réponse

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
3 août 2014 à 19:31
Tu a essayé de regarder du côté des Regex ?
0