2010-11-23 9 views
-1

Je suis en train de transformer une structure de menu/commande texte en liens HTML en JavaScript. Le texte couvre que je reçois sont de la forme:Transformer le menu texte en liens HTML en JavaScript

 
<span>1. First option   2. Second option  </span> 
<span>3. Third option         </span> 

Je voudrais un lien pour chaque élément de menu, avec le texte du lien étant « Première option », «deuxième option, etc. Le principal problème est que les travées ont un espace blanc: pré sur eux, et j'ai besoin de conserver tous les espaces dans la durée. C'est-à-dire que la longueur du texte dans chaque intervalle ne peut pas changer.

J'ai été capable de créer des liens avec des expressions régulières en utilisant des sous-motifs et la méthode de remplacement, mais je ne peux pas sélectionner la totalité de l'étendue et ne pas avoir d'espace blanc dans le sous-masque. Voilà ce que j'avais que ca ne les deux maillons de la même période séparée, mais laisse dans les espaces: /(\d*)\.\s*([a-zA-Z][a-zA-Z\s]*)/g

+0

Vous avez vous-même un problème de merde. Pourquoi ce menu est-il formaté en tant que html merdique? Il serait beaucoup plus sensé de le définir json ou même xml. –

+0

Écran grattant un ancien système de ligne de commande, mettant dynamiquement sur le web. Assez soigné, mais vous devez faire face à la merde comme ça. – ScottR

Répondre

0

je devais apprendre préanalyse négatif :) Voici ce que je suis:

/((\d+).\s)((?:[\\d\s]|\s(?!(?:\s*\d*.)|(??\s * $)) | \ d (?! (?: \ d *. \ s))) *)/g

$ 1 contient le '1. ', $ 2 contient le' 1 ', $ 3 contient le texte du menu. Cela fonctionne plutôt bien.

0

utilisant jquery:

var links=''; 
$('span').each(function(){ 
var text = this.innerText.replace(" ",""); 
var a= '<a href="#">' + text + '</a>'; 
links += a; 
}); 

$('span').parent().html(links); 
+1

Cela ne fonctionne pas de différentes manières, notamment parce qu'il perd de l'espace et ne crée pas de liens séparés pour chaque commande de menu. Il efface également toutes les portées, ce qui est un mauvais effet secondaire. – ScottR

Questions connexes