Expression régulière - gestion de plusieurs spans imbriqués en HTML
Bonjour,
Je réalise un petit éditeur de texte en javascript dans le même style que fck editor ou que tinyMCE.
Mais, j'ai un petit souci pour la redéfinition de certaines balises
par exemple pour le gras et l'italique.
Sous firefox ce la donne quelque chose du genre :
Code:
<span style="font-weight: bold;"> mot en gras </span>
Code:
<span style="font-style: italic;"> mot en italique</span>
Or sous IE on a :
Code:
<strong>mot en gras</strong>
Code:
<em>mot en italique</em>
Donc dans un souci d'homogénéité je souhaite retransformer les balises span.
Sous firefox en mode editable, je sais qu'il y a également la commande :
Code:
document.execCommand("styleWithCSS", null, false);
qui permet de faire cette conversion mais elle restreint d'autres options que je voudrais utiliser.
Donc j'ai pensé à une expression régulière du type :
Code:
html = html.replace(/<span style=\"font-weight: bold;\s*\">(.*?)<\/span>/gi,"<strong>$1</strong>");
Mais cela fonction uniquement si dans mon html il n'y a qu'une balise "span".
donc en gros ça marche pour ça :
Code:
1 2
|
mon texte en <span style="font-weight: bold;">gras</span> |
mais pas pour ça :
Code:
mon texte<span style="font-weight: bold;"> en gras<span style="font-style: italic;"> qui entoure</span> celui en italique</span>
En fait ce que je souhaiterai faire, c'est trouver une Regex (ou autre chose) qui permet de localiser les bonnes balises ouvrantes et fermantes pour pouvoir les remplacer.