JeuWeb - Crée ton jeu par navigateur
[Réglé][JavaScript]Problème pour un BBCode :: Expression régulière - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Réglé][JavaScript]Problème pour un BBCode :: Expression régulière (/showthread.php?tid=1028)

Pages : 1 2


[Réglé][JavaScript]Problème pour un BBCode :: Expression régulière - Plume - 04-04-2007

Bonsoir à tous.

Je travaille sur un `éditeur` avec prévisualisation automatique. Mon code marche, mais j'ai rencontré un problème qui se produit dans deux cas.

Tout d'abord le bout de script qui m'interpèle :
Code :
// balise Alignement à droite
texte = deblaie(/(\[\/droite\])/g, texte)
texte = remplace_tag(/\[\droite\](.+)\[\/droite\]/g, '<p style="text-align: right">$1</p>', texte)
texte = remblaie(texte)

Avec ce code, quand je saisi un texte les balises [droite][/droite] ne sont pas interprétées. Par contre si j'utilise les balises [adroite][/adroite] le code marche parfaitement - évidemment, le code est modifié en conséquence.
Le deuxième cas dans lequel ça se passe, c'est pour les balises [centre][/centre]. Si je test comme avec [adroite][/adroite], là aussi ça marche. Alors j'aimerais savoir pourquoi ça fait ça.

Merci Smile


RE: [JavaScript]Problème pour un BBCode - Roworll - 05-04-2007

texte = remplace_tag(/\[\droite\](.+)\[\/droite\]/g, '<p style="text-align: right"></p>', texte)

\d permet de capturer un caractère numérique. \d est ainsi équivalent à [0-9].

Regexp est toujours un vrai casse tête ^^


RE: [JavaScript]Problème pour un BBCode - Plume - 05-04-2007

Comment faire pour qu'il n'interprète pas \d ? '\\d' ?
Et \c sert à ?


RE: [JavaScript]Problème pour un BBCode - Roworll - 05-04-2007

\c<Caractère> permet de capturer un caractère de contrôle (correspondant à la combinaison Ctrl+Caractère). Par exemple "\cC" permet de capturer la séquence Ctrl+c.

Donc le \c merdouille aussi.

Maintenant, la syntaxe potable...
comme je l'ai dit, regexp est un vrai casse tête (du moins pour moi).
le \\d et \\c pourraient faire ton affaire mais je ne peux pas le certifier.


RE: [JavaScript]Problème pour un BBCode - Plume - 05-04-2007

Non, c't'un fait. Cela ne fait pas mon affaire ^^ J'étais déjà en train d'essayer ... Dois bien y avoir un truc, mais là sur le coup, j'me sens pas proche du but. Ca fait trop longtemps que j'ai pas touché les expressions régulières, alors j'étais content que ça marche ... Jusqu'à ce que j'attaque l'alignement GRrrrr !


RE: [JavaScript]Problème pour un BBCode - Roworll - 05-04-2007

Mmm question bête, pourquoi ne pas utiliser directement
Code :
texte = remplace_tag(/\[droite](.+)\[\/droite]/g, '<p style="text-align: right"></p>', texte)

Je ne vois pas pourquoi encadrer tes 'droite' par des \.


RE: [JavaScript]Problème pour un BBCode - Plume - 05-04-2007

Heu ... J'ai sûrement dû vouloir en faire trop. .. Et j'me suis pas posé la question quand j'ai vu que pour tout le reste ça ne posait pas de problèmes. .. Et pour ce que j'connais en JavaScript ^^ J'ai vu cette expression là quelque part, après j'ai que la modifier comme il fallait. M'enfin, j'te remercie à présent ça marche & j'ai enlevé pour les autres, ça marche toujours. Tongue

Du coup, une autre colle maintenant :
Quand j'encadre un lien dans mon champ texte, les balises sont bien interprétées dans mon div de prévisualisation, seulement quand je clique sur le lien, il ne se passe rien, pourtant dans la barre de statut en bas de la fenêtre, le lien apparait bien comme il faut, et le curseur change bien au passage sur le lien, ce qui signifie qu'il le reconnait bien. Comment faire pour que le lien devienne effectif ?


RE: [JavaScript]Problème pour un BBCode - Roworll - 05-04-2007

Il faudrait que je puisse en voir plus pour aider sur ce point.

Tu as essayé de faire un clic-droit -> ouvrir dans une nouvelle fenêtre histoire de voir ce que ça donne ?


RE: [JavaScript]Problème pour un BBCode - Plume - 05-04-2007

Oui ça ça marche bien. Y a vraiment que le clic direct qui ne fait rien.


RE: [JavaScript]Problème pour un BBCode - Roworll - 05-04-2007

Peut être une interception de l'event onClick sur la page ou un truc du genre...
Pas vraiment d'idée là.