2009-07-09 8 views
0

Je travaille sur une page web dynamique PHP qui a un <textarea> élément qui permet à l'utilisateur d'écrire du texte et de le montrer en "temps réel" dans un <div> élément, juste JavaScript-traitement du texte et tags. Je modifie le "b", "u", et les balises entre parenthèses (comme le style phpBB) à leurs équivalents HTML comme "fort", "u", et ainsi de suite en utilisant des expressions rationnelles JavaScript.Javascript PHPBB-comme le traitement de tag URL

problème se produit lorsque je dois traiter l'étiquette url, où je dois extraire l'URL d'entrée qui ressemble à ceci:

[url=http://...] 

Comment puis-je remplacer par:

<a href="http://..."> 

Répondre

0

Cela devrait fonctionner:

str.replace(/\[url=([^\s"<>\]]+)\]/gi, '<a href="$1">$1</a>'); 

Cela devrait prendre les paramètres [url=...] et, à l'exception de toute activité amusante (<, > ou espaces), remplacez-le par un lien hypertexte, en utilisant l'URL à la fois comme destination et comme texte de lien. Cela permettra des choses comme [url=javascript:while(1)alert('Boo!')], ce qui produira un lien qui, lorsqu'on cliquera, va vraiment ennuyer l'utilisateur - vous devrez ajouter un filtrage de désinfection pour bloquer ce genre de choses.

+0

Merci! Cela a fonctionné parfaitement :) Juste ce dont j'avais besoin: D – Ragnagard

+0

Super. Je viens juste de remarquer que je n'ai pas ajouté le caractère guillemet (") à la liste des caractères non autorisés - je vous recommande de le presser pour que le lien ne se termine pas tôt et que tout se passe bien. dans l'expression rationnelle maintenant. –

Questions connexes