[JS] Matcher des caractères Unicode via une regexp

Matcher des caractères Unicode via une regexp [JS] - HTML/CSS - Programmation

Marsh Posté le 14-02-2008 à 12:28:30    

Wesh les gros [:udok]
 
Alors vala, chu en train de faire un script JS de validation de formulaires et en l'occurrence j'aimerais checker un nom qui peut contenir divers caractères, notamment des caractères asiatiques (chinois, coréen...). Bref, je voudrais tout type de lettre ou de chiffre, quelques signes de ponctuation (genre [] ou {} ou d'autres trucs) et c'est tout. Et là, faut trouver la bonne regexp qui va bien parce que bien sûr \w ne marche que pour les lettres de base [:petrus75]
Donc en lisant un peu de littérature sur le sujet, je suis tombé sur http://www.regular-expressions.info/unicode.html ; la grande classe, c'est pile ce que je veux. Sauf que les \p{L} et autres trucs du même style, le JS n'aime pas (en tout cas dans Firefox). Donc perdu.
 
Des idées ou des suggestions ? J'imagine que je suis pas le premier à me faire chier avec ça, quand même [:joce]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 14-02-2008 à 12:28:30   

Reply

Marsh Posté le 14-02-2008 à 13:36:02    

pour matcher un caractère unicode en regex js il faut utiliser:

\uXXXX


Ou XXXX est la valeur de ton caractère ( 4 chiffres en hexa).
 
Maintenant je sens que tu vas me dire "ouais mais je vais pas tous les écrire ... comment je fais pour les matcher tous en une seule regex?"
Je crois que c'est pas possible :o
 
T'as pas moyen de faire ce controle coté serveur (avec un langage qui supporte les regexs PCRE plutot que posix )?


---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 14-02-2008 à 13:38:30    

Ouais nan mais si, j'vais faire le test effectif en PHP mais là c'est juste pour éviter que le mec submitte le formulaire alors qu'il y a un caractère que je veux pas. Spour éviter l'aller-retour serveur, quoi :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 14-02-2008 à 16:51:52    

[:udok] up for taiche [:udok]


Message édité par uriel le 14-02-2008 à 16:52:13

---------------
IVG en france
Reply

Marsh Posté le 14-02-2008 à 16:56:40    

tiens: http://hamstersoup.com/javascript/ [...] ester.html
Le mec s'est amusé à l'écrire en js ... tu constateras la rapidité du truc :o
edit: note que j'ai pas lu son code autant c'est écrit avec les pieds
 

Message cité 1 fois
Message édité par anapajari le 14-02-2008 à 16:56:59

---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 14-02-2008 à 17:12:42    

anapajari a écrit :

tiens: http://hamstersoup.com/javascript/ [...] ester.html
Le mec s'est amusé à l'écrire en js ... tu constateras la rapidité du truc :o
edit: note que j'ai pas lu son code autant c'est écrit avec les pieds


Je vois pas très bien en quoi ça m'aide :??:


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 14-02-2008 à 17:15:39    

nan mais ça confirme ce que je te disais, a savoir que tu es obligé de parcourir l'intégralité des codes de tes caractères à coup \uXXXX...
Et que ça prend 3 plombes [:spamafote]

Message cité 1 fois
Message édité par anapajari le 14-02-2008 à 17:15:53

---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 14-02-2008 à 17:22:22    

anapajari a écrit :

nan mais ça confirme ce que je te disais, a savoir que tu es obligé de parcourir l'intégralité des codes de tes caractères à coup \uXXXX...
Et que ça prend 3 plombes [:spamafote]


Ah ouais OK, bin justement c'est bien relou... tant pis, je checkerai pas ce genre de truc côté client ; à la limite je checkerai certains caractères communs de ponctuation que je veux éviter et basta.
 
Merci JavaScript [:natas]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 14-02-2008 à 17:25:53    

Au pire tu peux pas faire un coup d'httpRequest pour faire la verif coté serveur?  
note: gaffe à l'utf8


---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 14-02-2008 à 19:09:03    

Ouais, j'y ai pensé aussi mais je sais pas si ça vaut le coup. A voir, p'têt.
Pas de souci pour l'encodage, j'utilise déjà pas mal Ajax sur le reste du site et ai déjà rencontré le problème.
Merci quand même [:dawa]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 14-02-2008 à 19:09:03   

Reply

Marsh Posté le 14-02-2008 à 19:09:43    

de rien [:dawa]
 
 
   [:udok]


---------------
IVG en france
Reply

Marsh Posté le 14-02-2008 à 19:22:15    

[:natas]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed