Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1304 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] problème avec les expressions régulières

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JS] problème avec les expressions régulières

n°468675
THE REAL S​MILEY
The Real Résistance!
Posté le 26-07-2003 à 23:13:10  profilanswer
 

bonjour, dans mon forum, je gère l'affichage en JS et beaucoup des traitements sont faits en JS.
 
J'ai le Pb suivant:
 
pour gérer les urls cliquables dans le forum, j'ai l'expression régulière suivante:

Code :
  1. var exp1=new RegExp("((http|mailto|news|ftp|https)://(([-&a-z0-9\/\.\?_=#@:~])*))","gi" );
  2. return chaine.replace(exp1,"<A href=\"$1\" target=\"_blank\">$1</A>" );


le problème est que lorsque l'on insère une image [ img]http://www.lien_vers_mon_image.gig[ /img] l'adresse HTTP est traitée par l'expression régulière, et l'image ne s'affiche donc pas.
 
comment faire pour corriger ce Pb ?


Message édité par THE REAL SMILEY le 26-07-2003 à 23:14:40
mood
Publicité
Posté le 26-07-2003 à 23:13:10  profilanswer
 

n°468733
skylight
Made in France.
Posté le 27-07-2003 à 01:39:53  profilanswer
 

Dans l'expression réguliere, indique que tu veut soit un retour chariot, soit un espace, avant l'url.
"/( |\r\n|\n|\r|:|;)(http|https|ftp|mms):&#47;&#47;([^ !\'\"\r\n]+)/i"


Message édité par skylight le 27-07-2003 à 01:43:57
n°468735
skylight
Made in France.
Posté le 27-07-2003 à 01:40:34  profilanswer
 

Note : les &#47; sont a remplacer par / dans vos forums... moi j'ai transformé les  / en leur caractere acsii pour plus de facilité.

n°468736
skylight
Made in France.
Posté le 27-07-2003 à 01:42:17  profilanswer
 

Pour info, voici mes expression régulieres :
 

Code :
  1. $search = array(
  2. "/\[img\](http|https|ftp|mms):&#47;&#47;(\S+)\[&#47;img\]/si",
  3. "/\[center\](.+?)\[&#47;center\]/si",
  4. "/\[left\](.+?)\[&#47;left\]/si",
  5. "/\[right\](.+?)\[&#47;right\]/si",
  6. "/\[justify\](.+?)\[&#47;justify\]/si",
  7. "/\[taille1\](.+?)\[&#47;taille1\]/si",
  8. "/\[taille2\](.+?)\[&#47;taille2\]/si",
  9. "/\[taille3\](.+?)\[&#47;taille3\]/si",
  10. "/\[spoiler\](.+?)\[&#47;spoiler\]/si",
  11. "/\[g\](.+?)\[&#47;g\]/si",
  12. "/\[i\](.+?)\[&#47;i\]/si",
  13. "/\[s\](.+?)\[&#47;s\]/si",
  14. "/\[x\](.+?)\[&#47;x\]/si",
  15. "/\[url=(http|https|ftp|mms):&#47;&#47;(.+?)\](.+?)\[&#47;url\]/si",
  16. "/\[url=(\S+)\](.+?)\[&#47;url\]/si",
  17. "/\[url\](.+?)\[&#47;url\]/si",
  18. "/\[code\](.+?)\[&#47;code\]/si",
  19. "/  /",
  20. "/\[#(.+?)\](.+?)\[&#47;#(.+?)\]/si",
  21. "/( |\r\n|\n|\r|:|;)(http|https|ftp|mms):&#47;&#47;([^ !\'\"\r\n]+)/i",
  22. "/( |\r\n|\n|\r|:|\(|\))www\.([^ !\'\"()\r\n]+)/i",
  23. "/( |\r\n|\n|\r|:|;)([^ !\'\"()\r\n;:]+)(@)([^ !\'\"()\r\n;]+)(\.)([^ !\'\"()\r\n;]+)/i",
  24. "/(\r\n)/",
  25. "/\[#(.[a-zA-Z0-9_\- ]*?)\]/si"
  26. );
  27. $replace = array(
  28. "<img src=\"\\1://\\2\" alt=\"\\1://\\2\" title=\"\\1://\\2\" />",
  29. "<div align=\"center\">\\1</div>",
  30. "<div align=\"left\">\\1</div>",
  31. "<div align=\"right\">\\1</div>",
  32. "<div align=\"justify\">\\1</div>",
  33. "<span class=\"taille1\">\\1</span>",
  34. "<span class=\"taille2\">\\1</span>",
  35. "<span class=\"taille3\">\\1</span>",
  36. "<div class=\"spoiler\"><b class=\"textesujet taille1\">Sélectionner le cadre pour voir le texte : </b><br />\\1</div>",
  37. "<b>\\1</b>",
  38. "<i>\\1</i>",
  39. "<u>\\1</u>",
  40. "<li>\\1</li>",
  41. "<a href=\"\\1://\\2\" target=\"_blank\" class=\"textesujet\" title=\"Cliquez ici pour ouvrir l'adresse dans une nouvelle fenêtre\">\\3</a>",
  42. "<a href=\"http://\\1\" target=\"_blank\" class=\"textesujet\" title=\"Cliquez ici pour ouvrir l'adresse dans une nouvelle fenêtre\">\\2</a>",
  43. "<a href=\"\\1\" target=\"_blank\" class=\"textesujet\" title=\"Cliquez ici pour ouvrir l'adresse dans une nouvelle fenêtre\">\\1</a>",
  44. "<table width=\"90%\" border=\"0\" bgcolor=\"#000000\" cellspacing=\"1\" cellpadding=\"2\"><tr><td bgcolor=\"#FFFFFF\"><font face=\"Courier\" size=\"2\">\\1</font></td></tr></table>",
  45. " &nbsp;",
  46. "<font color=\"\\1\">\\2</font>",
  47. "\\1<a href=\"\\2://\\3\" target=\"_blank\" class=\"textesujet \" title=\"Cliquez ici pour ouvrir l'adresse dans une nouvelle fenêtre\">\\2://\\3</a>",
  48. "\\1<a href=\"http://www.\\2\" target=\"_blank\" class=\"textesujet \" title=\"Cliquez ici pour ouvrir l'adresse dans une nouvelle fenêtre\">www.\\2</a>",
  49. "\\1<a href=\"mailto:\\2@\\4\\5\\6\" target=\"_blank\" class=\"textesujet\" title=\"Envoyer un mail à cette adresse\">\\2@\\4\\5\\6</a>",
  50. " <br />",
  51. " <img src=\"images/smileys/perso/" . $config . "_\\1.gif\" alt=\"\" title=\"[#\\1]\" />"
  52. );

n°468750
skylight
Made in France.
Posté le 27-07-2003 à 01:58:38  profilanswer
 

avis perso : pourquoi faire les expressions régulieres en JS ?
 
le php est tres rapide ... de plus si un gars a le JS desactivé, bein adieu la mise en page chez lui.
 
un forum, en general, la charge serveur est 90% mysql, et 10% php ... donc t'as de la marge.

n°468910
THE REAL S​MILEY
The Real Résistance!
Posté le 27-07-2003 à 14:01:22  profilanswer
 

Skylight a écrit :

avis perso : pourquoi faire les expressions régulieres en JS ?
 
le php est tres rapide ... de plus si un gars a le JS desactivé, bein adieu la mise en page chez lui.
 
un forum, en general, la charge serveur est 90% mysql, et 10% php ... donc t'as de la marge.


Merci Sky pour tes astuces,
 
Je fais beaucoup de traitements en JS et non en PHP afin d'optimiser le poids des pages, par ex:

http://www.lewebrapide.com


est toujours plus court que:

<a href="http://www.lewebrapide.com" target="_blank">http://www.lewebrapide.com</a>


ça peut paraitre comme du chipotage, mais bon ...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] problème avec les expressions régulières

 

Sujets relatifs
Probleme de config Apache (recup variable)Gros problème de lenteur inexplicable :(
Problème avec une Extension Shell Windowsproblème de fichier .htaccess
Problème en upgradant à mysql 4.0.14![C]Probleme de char et string
Probleme avec mon fichier .htaccess[MYSQL] Probleme avec la commande LOAD DATA LOCAL INFILE...
[MYSQL] Probleme avec la commande LOAD DATA LOCAL INFILE...petit problème de largeur pour une balise div
Plus de sujets relatifs à : [JS] problème avec les expressions régulières


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR