2013-02-17 4 views
0

J'ai une question complémentaire à content replace function:contenu remplacer la fonction

Ceci est mon contenu actuel remplacer la fonction:

content = content.replace(/(<t t>(.*?)<t t>)/g, function(m,p1,p2){ 
    return p2,p1.replace(/  /g,"_").replace(/<t t>/g,"<html>"); 
}); 

Quand je lance:

This <t t>this a test<t t> of 

dans mon processus HTML zone de texte :

<textarea id="content" cols="48" rows="8"></textarea><br /> 
<input type="button" value="Process" onclick="process()" /> 

je recevrai cela comme une sortie:

This <t_t>this_a_test<t_t> of the replace. 

Plutôt que de ce que je veux ce qui serait ceci:

This <t d>this_a_test<t d> of the replace. 

Je sais que la raison

<t t> 

ne remplace pas

<t d> 

est parce que ma fonction cherche un espace et à son tour omet cet espace et crée un trait de soulignement. Mais je ne peux pas comprendre comment ne pas avoir cela, tout en remplaçant un espace avec un trait de soulignement dans mes deux balises, par exemple.

this a test 

deviendra

this_a_test 

Le answerer à ma question précédente utilisé cette ressource utile .replace() method me aider à comprendre, mais beaucoup à mon grand regret je ne pouvais pas comprendre cela moi-même. Merci beaucoup à l'avance pour votre aide, si besoin ici est un lien vers mon example

+1

Que voulez-vous exactement réaliser? Précisez s'il vous plaît. –

+0

Je voudrais changer ma fonction actuelle de telle sorte que lorsque ce ce un test du remplacer.' est entré dans ma zone de texte de processus le résultat serait ceci 'Ce this_a_test du remplacer.'Je suis désolé pour la confusion, s'il y en a encore s'il vous plaît laissez-moi savoir – Clint

+0

pas de problème, merci pour l'info –

Répondre

0

Ainsi, selon votre commentaire ...

... de sorte que lorsque « Ce <tt> ce un test <tt> du remplacer ". est entré dans ma zone de texte de processus, le résultat serait ce "Cette < td td > this_a_test < > de remplacer" ...

... vous pouvez simplement faire:

content.replace(/<t t>/g, "<t d>"); 

Gardez à l'esprit que le drapeau /g dans les expressions régulières correspond à tous les motifs de la chaîne testée (g signifie «global»).

+0

Merci pour votre réponse, je crois que nous sommes sur la bonne voie, mais prenez ceci par exemple: [link] (http://jsfiddle.net/WVUYX/44/). Le '' remplacera effectivement à '' mais la partie «est un test» ne sera pas modifiée pour éliminer les espaces et ajouter des traits de soulignement. L'inverse est vrai dans cet exemple: [link] (http://jsfiddle.net/WVUYX/45/). – Clint