Est-il possible de cr�er un expression r�guli�re simple pour contr�ler
qu'un champs comporte des lettres... toutes les lettres, y compris
cyrillique, accentu�es, etc. Le tout en utf8 ?
Merci.
Le 07/12/2009 16:10, Olivier Masson a ᅵcrit :
>
> Est-il possible de crᅵer un expression rᅵguliᅵre simple pour contrᅵler
> qu'un champs comporte des lettres... toutes les lettres, y compris
> cyrillique, accentuᅵes, etc. Le tout en utf8 ?
Avec PCRE : /^\pL+$/ vᅵrifie qu'une chaᅵne ne contient que des lettres
au sens Unicode (au moins une).
Malheureusement, je crois que ce n'est pas encore implᅵmentᅵ dans
JavaScript (du moins dans ECMAScript 3e ᅵdition), et je ne crois pas
qu'il existe d'alternative, hormis celle de dᅵcrire laborieusement
toutes les plages de codes qui t'intᅵressent.
Je fais suivre ᅵ tout hasard vers fr.comp.lang.regexp.
Cordialement,
--
Olivier Miakinen
Peut-être + simple de vérifier que ça ne comporte pas les indésirables ?
champ.match(/[^+*"'<>‹≈\s\d.,:;(\){\}[\]\/\\—_-]+/); // à compléter ?
Ou bien si tout est acceptable sauf chiffres
/[^0-9]+/
Passer en utf-8 si le news-reader ne l'a pas fait tout seul.
javascript:chp='©†™®‡ß<朇Ò∂ƒfiÌπ¬µ◊ß';alert(chp.replace(/[^+*"'<>‹≈\s\d.,:;(\){\}[\]\/\\—_-]+/,'').length==0)
javascript:chp='©†™®‡ß朇Ò∂ƒfiÌπ¬µ◊ßПробуйте';alert(chp.replace(/[^+*"'<>‹≈\s\d.,:;(\){\}[\]\/\\—_-]+/,'').length==0)
--
sm
Comme le rappelle souvent John Gallet sur fclp, le seul contrôle
sécurisé est celui qui liste les caractères autorisés plutôt que les
caractères interdits.
> Ou bien si tout est acceptable sauf chiffres
> /[^0-9]+/
Quid des chiffres en hindi, dévanâgarî, bengali, gourmoukhî, tamoul,
télougou, malayalam, etc. ?
> [...] '©†™®‡ß朇Ò∂ƒfiÌπ¬µ◊ßПробуйте' [...]
Ah, évidemment, si tu te limites aux caractères qui sont dans MacRoman
(y compris le logo Apple, mais non compris l'immense diversité des
langues du monde), c'est plus facile. ;-)
Bon .... sauf chiffres arabes
C'est mieux comme ça Sidi Olivier ?
>> [...] '©†™®‡ß朇Ò∂ƒfiÌπ¬µ◊ßПробуйте' [...]
>
> Ah, évidemment, si tu te limites aux caractères qui sont dans MacRoman
> (y compris le logo Apple, mais non compris l'immense diversité des
> langues du monde), c'est plus facile. ;-)
Koi ? Couha ? j'avions pourtant glissé qques cyrilliques, non ?
Ça n'est qu'un exemple de chaine qui répond à la non présence des
indésirables définis précédemment - et dont il était bien indiqué qu'ils
pourraient être complétés - je te laisse libre de proposer une autre
chaine en Nahuatl (n'en ai pas trouvé la table :-( )
Pour moi, la question initiale reste encore un peu vague, et ce n'est
pas ton éclairage qui va en vaincre la nébulosité ...
fclp je ne connais pas et John Gallet non plus mais il est certain
qu'une idée plus précise des lettres requises serait un point positif.
(le braille est-il admis ?)(y comprises les abréviations?)
--
sm
>
> Peut-être + simple de vérifier que ça ne comporte pas les indésirables ?
>
> champ.match(/[^+*"'<>‹≈\s\d.,:;(\){\}[\]\/\\—_-]+/); // à compléter ?
>
> Ou bien si tout est acceptable sauf chiffres
> /[^0-9]+/
>
>
Comme le répond Olivier, je préfère nettement un /drop all, allow any/,
ce qui permet d'éviter les "à compléter ?" parfois dangereux.
Au-delà de ça, dans un prénom par exemple, je ne veux pas toute sorte de
caractères.
Et plus généralement, j'essaie d'avoir des expressions-types pour ne pas
me poser de questions pas la suite ; je veux des lettres : je n'obtiens
que des lettres. On pourrait faire de même pour les chiffres car Olivier
soulève, encore une fois, le problèmes des chiffres non-arabes.
Ca peut paraitre disproportionné, mais c'est insupportable de voir que
TOUTES les sources js ou php que je vois, avec de jolies classes
partout, où ça se la pète "je fais de MVC", etc. ne sont pas foutues de
gérer l'internationalisation.
Alors on fait le pro à dire "oula, il faut séparer les couches, et
gnigni et gnagna" et à côté, on blinde sont code de die, de catch,
d'exceptions en tous genres qui, au final, balance une bonne variable en
dure avec un "Connexion à la base impossible". OUAIS, JE SUIS ÉNERVÉ ;)
(comme dirait l'autre, j'ai un profond mépris pour ces gens-là :D)
Enfin bon... Donc j'essaie de penser à ça pour la conception des regexp.