11548 sujets

JavaScript, DOM et API Web HTML5

messieu-dame, bonsoir !

une journée de plus a ne pas avancer... définitivement, je ne comprend rien au regex en jawascript...
en fait, j'essaie de faire du BB code en javascript et pour toutes les balises, c'est bon, mais pour les balises de liens, ca marche plus car les regex sont indispensables...

donc, ce que j'aimerai, c'est transformer :
[lien  http://www.toto.fr]visiter  le site[/lien]

en
<a href="http://www.toto.fr>visiter le site</a>


si quelqu'un maitrise, merci enormément de bien vouloir m'aider...

Tomac
Modifié par tomac (31 Mar 2005 - 09:43)
Juste une petite remarque au niveau de ton titre, tu pourrais éditer pour mettre quelque chose d'un peu plus parlant, à la limite juste "problème Regex" ou un truc plus parlant Smiley cligne

Je peux pas t'aider sur ce plan là, je pense pareil que ton titre actuel !!!
je vais tester ca de suite, juste apres avoir changer mon titre ;o)

merci beaucoup!!!!, pour la reponse ;o) et le lien que je potasserai!!!

tomac
Je ne suis pas sur que ca puisse t'aider, mais j'ai fais le même genre de chose en PHP.
Tu peut t'inspirer des regexp.
(désolé, je n'ai pas de lien pour le code source)
  // gras
  $message = preg_replace('!\[b\](.*)\[/b\]!iUms',
    '<strong>\\1</strong>', $message);
  
  // italique
  $message = preg_replace('!\[i\](.*)\[/i\]!iUms',
    '<em>\\1</em>', $message);
  
  // souligné
  $message = preg_replace('!\[u\](.*)\[/u\]!iUms',
    '<ins>\\1</ins>', $message);
  
  // taille
  $message = preg_replace('!\[size=([0-9]{1,2})\](.*)\[/size\]!iUms', 
    '<span style="font-size: \\1pt;">\\2</span>', $message);
  
  // couleur
  $message = preg_replace('!\[color=(#[0-9a-f]{1,6}|[a-z]+)\](.*)\[/color\]!iUms', 
    '<span style="color: \\1;">\\2</span>', $message);
  
  // code
  $message = preg_replace_callback('!\[code\](.*)\[/code\]!iUms',
    // fonction de callback pour supprimer les <br />
    create_function('$m', 
     'return str_replace("<br />", "", "<pre>".$m[1]."</pre>");'),
    $message);
  
  // citation
  $message = preg_replace('!\[quote\](.*)\[/quote\]!iUms', 
    '<div class="quote">'.lang('quote').' :
 <blockquote>\\1</blockquote>
</div>', $message);
  
  // citation avec nom
  $message = preg_replace('!\[quote="(.*)"\](.*)\[/quote\]!iUms', 
    '<div class="quote">'.lang('quote_of').' <span class="username">\\1</span> :
 <blockquote>\\2</blockquote>
</div>', $message);
  
  // image
  $message = preg_replace('!\[img\](.*)\[/img\]!iU', 
    '<img src="\\1" alt="" />', $message);
  
  // URL
  $message = preg_replace('!\[url\](.*)\[/url\]!iU', 
    '<a href="\\1">\\1</a>', $message);
  
  // URL avec texte
  $message = preg_replace('!\[url=(.*)\](.*)\[/url\]!iU', 
    '<a href="\\1">\\2</a>', $message);