2010-11-17 3 views
1

Je reçois une sélection d'URL à l'aide:En utilisant jQuery, aider à modifier un ensemble de urls

$("a.someclass") 

Maintenant, mes urls ressemblent:

http://www....com/something/12321 

Je dois modifier les urls en supprimant la numéro de fin à devenir:

http://www....com/something/ 

Comment est-ce que je peux faire ceci?

+1

** Juste ** le numéro * final *, ou * tout * après le caractère final '/'? –

Répondre

2

Quelque chose comme cela pourrait fonctionner, en utilisant une expression rationnelle pour supprimer le numéro de fin:

$("a.someclass").each(function() { 
    $(this).attr('href', function(index, attr) { 
    return attr.replace(/^(.*)\d+$/, '$1'); 
    }); 
}); 
+1

La partie '^ (. *)' De la regex n'est pas nécessaire (sauf si vous essayez d'exclure des URL contenant des retours à la ligne sans échappement, ce qui est peu probable). – PleaseStand

+0

@idealmachine, tout à fait raison, il devrait être: attr.replace (/ \ d + $ /, ''); – Orbling

+0

En outre, la fonction .each() est redondante, car elle peut directement partir de $ ("a.someclass"). Attr (...) - eh bien. – Orbling

1

Vous pouvez le faire si le href se termine en fait avec un certain nombre:

$("a.someclass").attr('href',function(i,href){return href.replace(/\d+$/,'');}); 
+0

Ceci est la meilleure formation, car l'appel each() est évidemment inutile - aurait dû le repérer! :-) – Orbling

Questions connexes