2009-09-18 5 views
0

J'ai un tas de textarea sur une page avec copier et coller des codes avec des URL en leur sein.Changement du sous-domaine sur un tas d'URL à l'intérieur de textareas avec jQuery

pour exmaple:

<textarea><a href="http://anything.domain.com/x/5">something</a></textarea> 
<textarea><a href="http://anything.domain.com/x/3">something</a></textarea> 

J'ai aussi un menu déroulant, avec un tas d'options de sous-domaine avec l'intention de changer le sous-domaine dans toutes les zones de texte sur la page.

par exemple

<select class="changeLinks"> 
    <option value="www">www.domain.com</option> 
    <option value="somethingelse">somethingelse.domain.com</option> 
</select> 

Comment passer par ces textareas et simplement mettre à jour le texte du sous-domaine?

$('.changeLinks').change(function(){ 

    var subdomain = $(this).val(); 

// *blank* some sort of find and replace function which replaces whatever is after the http:// and before the first decimal with the var subdomain 


}); 

Répondre

0

Vous pouvez utiliser des expressions régulières pour rechercher et remplacer tous les liens dans le texte:

var text = $("textarea").each(function(){ 
    $(this).text($(this).text().replace(/<a href="http:\/\/\w+\.domain\.com(.*?)">(.*?)<\/a>/gi, "<a href=\"http://"+subdomain+".domain.com"+$1+"\">"+$2+"</a>")); 
}); 

Je ne l'ai pas testé la fonction, mais il devrait fonctionner. Il pourrait avoir besoin de quelques ajustements et corrections d'erreurs.

+0

Je ne comprends pas très bien comment l'expression régulière fonctionne ici. Dans la deuxième partie de la fonction de remplacement, vous annulez les guillemets mais pas la première partie. Que fait le/gi? Désolé Marius je dois le comprendre avant que je puisse déboguer lol. merci pour cela, mais il semble que cela devrait fonctionner pour moi, mais je ne sais pas pourquoi ce n'est pas le cas. – willdanceforfun

+0

http://www.javascriptkit.com/javatutors/re.shtml – Marius

Questions connexes