begin process at 2012 05 29 22:04:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Quel est la bonne l'expression régulière pour une liste à puce (BBCode) ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Quel est la bonne l'expression régulière pour une liste à puce (BBCode) ?

mercredi 10 décembre 2008 à 14:41:40 | Quel est la bonne l'expression régulière pour une liste à puce (BBCode) ?

fabiano13

Re: Bonjour,

J'ai un problème en ce qui concerne la détection de plusieurs listes à puce en BBCode.
Pas de problème pour une seule liste à puce, mais lorsqu'il y en a plusieurs ça pose problème.
Alors quel est la bonne l'expression régulière ?

J'ai essayé le retour chariot après le dernier [/list]\r\n|\r|\n mais ça ne marche pas !

 ex : texte=texte.replace(/\[list=([^\]]*)\](.+)\[\/list]\r\n|\r|\n/mig, '<ul type="$1">$2</ul>');
 
<html>
<head>
<title>Prévisualisation</title>
</head>
<body>
<script>
function preview(sTxta,DivPrev) {
 var texte = document.getElementById(sTxta).value;
 texte=texte.replace(/</g, '&lt;');
 texte=texte.replace(/>/g, '&gt;');
 texte=texte.replace(/\r\n|\r|\n/g, '<p style=\'margin-top: 0; margin-bottom: 0\'>'); // simple saut de ligne ligne
 texte=texte.replace(/\n\n/mig, '<p style=\'margin-top: 10; margin-bottom: 10\'>'); // double saut de ligne
 texte=texte.replace(/\[(b|u|s|i|\/b|\/u|\/s|\/i)]/gi,'<$1>');
 texte=texte.replace(/\[list=([^\]]*)\](.+)\[\/list]/mig, '<ul type="$1">$2</ul>');
 texte=texte.replace(/\[\*]([^\[]+)(?=(\[\*])|(<\/ul>))/mig, '<li>$1</li>');
 texte=texte.replace(/\<br \/><\/ul>/gi, '</ul>');
 texte=texte.replace(/<\/ul><br \/>/gi, '</ul>');
 document.getElementById(DivPrev).innerHTML = texte;
}
</script>

<textarea rows="6" name="sTextarea" cols="54">sdgsdghksjdg

[b]sdgsdjhgsdkjgsd[/b]
[list=1][*] gsdgkjshdgksdhgkjsdg
[*] sdgkjshdkgh sdkjghskdg
[*] sdgkhsdkgjshdkgsjdhgkj
[/list]

gfdhfdgdsgidsugkldsj glkjdsg lkdsjg ldshgkjshdg kjdsh glkjshd glkjdshg lkjdshg lskjdghsdkljgh sdkljgshd gkljsdhgkjshd gkljdshglkdsjgh dslkjgh sdlkgjshd glkjdshglksjdhglskdgsd g .
hfdhdfh
fdhfdh

fdhdfh
dfhfd
hfdhfdh
sdgsdghksjdg

[b]sdgsdjhgsdkjgsd[/b]
[list=1][*] gsdgkjshdgksdhgkjsdg
[*] sdgkjshdkgh sdkjghskdg
[*] sdgkhsdkgjshdkgsjdhgkj
[/list]

gfdhfdgdsgidsugkldsj glkjdsg lkdsjg ldshgkjshdg kjdsh glkjshd glkjdshg lkjdshg lskjdghsdkljgh sdkljgshd gkljsdhgkjshd gkljdshglkdsjgh dslkjgh sdlkgjshd glkjdshglksjdhglskdgsd g .
hfdhdfh
fdhfdh

fdhdfh
dfhfd
hfdhfdh</textarea>
<p>
<input type="button" class="button" onclick="preview('sTextarea','DivPreview');" value="Prévisualisation" /></p>
<div id="DivPreview"><b>Prévisualisation</b></div>
</body>
</html>

mercredi 10 décembre 2008 à 18:22:37 | Re : Quel est la bonne l'expression régulière pour une liste à puce (BBCode) ?

PetoleTeam

Membre Club
Bonjour,
lorsqu'il y en a plusieurs ça pose problème
dans ton expression il recherche et trouve la première occurence [liste=1] et recherche et trouve la dernière occurence [/liste], tous ce qui se trouve entre est donc pris en compte...
le résulat affiché est alors le bon.

Pourquoi ne pas remplacer les [liste=1] dans un premier temps et les [/liste] dans un deuxième.
;O)
mercredi 10 décembre 2008 à 18:26:20 | Re : Quel est la bonne l'expression régulière pour une liste à puce (BBCode) ?

PetoleTeam

Membre Club
Au fait au passage,
tu travailles avec une TEXTAREA déclarée comme ceci...
<textarea rows="6" name="sTextarea" cols="54">

alors que tu récupéres l'objet avec ceci...
var texte = document.getElementById(sTxta).value;

Tu dois utiliser IExplorer pour qu'il n'y ait pas d'erreur.
;O)
mercredi 10 décembre 2008 à 18:32:53 | Re : Quel est la bonne l'expression régulière pour une liste à puce (BBCode) ?

fabiano13

Tu as raison pour document.getElementById(), je l'avais oublié !

Mais j'ai quand même du mal a voir la solution que tu proposes !

Peux-tu me mettre dans le bonne ordre les expréssions régulières ?

D'avance merci,
Fabiano13
mercredi 10 décembre 2008 à 18:48:52 | Re : Quel est la bonne l'expression régulière pour une liste à puce (BBCode) ?

PetoleTeam

Membre Club
Réponse acceptée !
A partir de l'expression régulière que tu as tu fais le plus simplement du monde,
//-- Remplace les debuts de listes
texte=texte.replace(/\[list=([^\]]*)\]/mig, '<ul type="$1">');
//-- Remplace les fins de liste
texte=texte.replace(/\[\/list]/mig, '</ul>');

;O)
mercredi 10 décembre 2008 à 18:55:50 | Re : Quel est la bonne l'expression régulière pour une liste à puce (BBCode) ?

fabiano13

Tu as raison, le plus simplement du monde. MILLE MERCIS ! 

var texte = document.getElementById(sTxta).value;
 texte=texte.replace(/</g, '&lt;');
 texte=texte.replace(/>/g, '&gt;');
 texte=texte.replace(/\r\n|\r|\n/g, '<p style=\'margin-top: 0; margin-bottom: 0\'>'); // simple saut de ligne ligne
 texte=texte.replace(/\n\n/mig, '<p style=\'margin-top: 10; margin-bottom: 10\'>'); // double saut de ligne
 texte=texte.replace(/\[(b|u|s|i|\/b|\/u|\/s|\/i)]/gi,'<$1>');
 texte=texte.replace(/\[list=([^\]]*)\]/mig, '<ul type="$1">');
 texte=texte.replace(/\[\/list]/mig, '</ul>');
 texte=texte.replace(/\[\*]([^\[]+)(?=(\[\*])|(<\/ul>))/mig, '<li>$1</li>');
 texte=texte.replace(/\<br \/><\/ul>/gi, '</ul>');
 texte=texte.replace(/<\/ul><br \/>/gi, '</ul>');
 document.getElementById(DivPrev).innerHTML = texte;


Cette discussion est classée dans : texte, replace, puce, list, mig


Répondre à ce message

Sujets en rapport avec ce message

List menu qui peuple un champs texte [ par Roberto ] Bonjour, j'ai trouvé ce code et j'aimerais afficher le nom de la ville dans le champs. Quelqu'un peut me dire ce que je dois changer dans le "onch replace plusieurs fois [ par cirdec2000 ] voila j'ai une variable texte dans laquelle je veux remplacer mes balises par des espacesvarTexte="|[Taille 1]|[Gras]MAIRIE [/Gras]|DE |[Taille 3] SAI Comment détecter les simples et les doubles saut de ligne dans un textarea (BBCode) ? [ par fabiano13 ] Bonjour,Comment détecter les simples et les doubles saut de ligne dans un textarea ?D'avance merci,Fabiano13 Prévisualisation</hea Puce d'affichage/masquage texte [ par spacedelta ] Bonjour, Je suis à la recherche du code qui permet d'afficher (si c'est masquer) ou d'afficher (si c'est masquer) le texte qui lui est "donné" Un peu script de jeu de cadre avec imagette et texte [ par kikizxr ] bonjour, je cherche a faire comme celui du RCT; http://www.rctoulon.com/ le cadre "a la une", "fil l'infos" j ai deja ce bout de script mais je ne s Recherche urgente. [ par zynala ] Je vous salut, Je ne sais pas si je suis dans la bonne rubrique mais bref,je demande quand même. voilà,je recherche un script java qui serais capabl positionnement de textes avec javascript [ par vol68 ] Bonjour à tous Voila mon probleme, je souhaiterai positionner des textes deja extraits d'une base de donneé avec ajax (texte, pos x, pos y, longueur, Petit traitement de texte personalisé [ par Dominique49 ] Bonjour à tous, voilà, je voudrais faire un petit traitement de texte en ligne personnalisé. Ce serait faisable en Java, mais tout le monde n'a pas Ja Ajout de zone de texte [ par aljessy ] Bonjour j'ai un petit problème. J'ai un petit formulaire et j'aimerais que lorque l'utilisateur clique sur le bouton "ajouter", qu'un autre champ de t trouver date dans texte [ par grimmy56 ] Bonjour, je cherche un script qui permette de trouver une date (soit au format xx/xx/xxxx soit au format 20 avril 2011) dans un texte. Quelqu'un peut


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,037 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales