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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
[diapublication et suivi vers fr.comp.lang.regexp]
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
[diapublication et suivi vers fr.comp.lang.regexp]
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.
[diapublication et suivi vers fr.comp.lang.regexp]
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
SAM
Le 12/7/09 4:10 PM, Olivier Masson a écrit :
Bonjour,
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.
Peut-être + simple de vérifier que ça ne comporte pas les indésirables ?
champ.match(/[^+*"'<>‹≈sd.,:;(){}[]/—_-]+/); // à 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.
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.
Peut-être + simple de vérifier que ça ne comporte pas les indésirables ?
champ.match(/[^+*"'<>‹≈sd.,:;(){}[]/\—_-]+/); // à 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.
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.
Peut-être + simple de vérifier que ça ne comporte pas les indésirables ?
champ.match(/[^+*"'<>‹≈sd.,:;(){}[]/—_-]+/); // à 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.
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 ?
Peut-être + simple de vérifier que ça ne comporte pas les indésirables ? champ.match(/[^+*"'<>‹≈sd.,:;(){}[]/—_-]+/); // à compléter ?
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. ?
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. ;-)
Le 08/12/2009 13:44, SAM 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 ?
Peut-être + simple de vérifier que ça ne comporte pas les indésirables ?
champ.match(/[^+*"'<>‹≈sd.,:;(){}[]/\—_-]+/); // à compléter ?
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. ?
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. ;-)
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 ?
Peut-être + simple de vérifier que ça ne comporte pas les indésirables ? champ.match(/[^+*"'<>‹≈sd.,:;(){}[]/—_-]+/); // à compléter ?
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. ?
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. ;-)
SAM
Le 12/8/09 3:17 PM, Olivier Miakinen a écrit :
Le 08/12/2009 13:44, SAM 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 ?
Peut-être + simple de vérifier que ça ne comporte pas les indésirables ? champ.match(/[^+*"'<>‹≈sd.,:;(){}[]/—_-]+/); // à compléter ?
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. ?
Bon .... sauf chiffres arabes C'est mieux comme ça Sidi Olivier ?
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. ;-)
Ç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
Le 12/8/09 3:17 PM, Olivier Miakinen a écrit :
Le 08/12/2009 13:44, SAM 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 ?
Peut-être + simple de vérifier que ça ne comporte pas les indésirables ?
champ.match(/[^+*"'<>‹≈sd.,:;(){}[]/\—_-]+/); // à compléter ?
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. ?
Bon .... sauf chiffres arabes
C'est mieux comme ça Sidi Olivier ?
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. ;-)
Ç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?)
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 ?
Peut-être + simple de vérifier que ça ne comporte pas les indésirables ? champ.match(/[^+*"'<>‹≈sd.,:;(){}[]/—_-]+/); // à compléter ?
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. ?
Bon .... sauf chiffres arabes C'est mieux comme ça Sidi Olivier ?
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. ;-)
Ç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
Olivier Masson
Le 08/12/2009 13:44, SAM a écrit :
Peut-être + simple de vérifier que ça ne comporte pas les indésirables ?
champ.match(/[^+*"'<>‹≈sd.,:;(){}[]/—_-]+/); // à 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.
Le 08/12/2009 13:44, SAM a écrit :
Peut-être + simple de vérifier que ça ne comporte pas les indésirables ?
champ.match(/[^+*"'<>‹≈sd.,:;(){}[]/\—_-]+/); // à 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.
Peut-être + simple de vérifier que ça ne comporte pas les indésirables ?
champ.match(/[^+*"'<>‹≈sd.,:;(){}[]/—_-]+/); // à 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.