2010-10-29 6 views
1

je besoin d'un regex javascript remplacer la fonction pour activerJavascript regex remplacer - la position de swap

<font anything_possible><span anything_different_possible></span> 

dans

<span anything_different_possible></span><font anything_possible> 

J'ai essayé beaucoup de combinaisons, mais a échoué. Toute aide appréciée.

+4

Analyser du HTML avec des regexp est mauvais, n'est-ce pas? http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –

+0

est quelque chose qui vous empêche d'utiliser getElementsByTagName? – Dawn

Répondre

1

Je pense que cela devrait le faire:

var original = '<font anything_possible><span anything_different_possible></span>'; 

var replaced = original.replace(/<font (.*?)><span (.*?)><\/span>/,"<font $2><span $1></span>"); 

Notez que la regex correspond à vos pièces « quoi que ce soit possible » et « anything_different_possible », alors que le texte de remplacement contient ces correspondances dans l'ordre inverse ($ 2 et $ 1) . Donc: à chaque fois qu'une sous-capture est faite (avec des accolades rondes()), elle est plus tard disponible sous $ n.

Hope this résout votre problème

Edit:

Comme certains utilisateurs signalent, si cela est de manipuler le DOM, il est probablement préférable d'utiliser les fonctions DOM pour cela.

Mais je peux imaginer des situations où vous pourriez avoir besoin d'une fonction de remplacement de chaîne comme ceci.