J'ai deux variables:
site1 = "www.somesite.com";
site2 = "www.somesite.com/";
Je veux faire quelque chose comme ça
function someFunction(site)
{
// If the var has a trailing slash (like site2),
// remove it and return the site without the trailing slash
return no_trailing_slash_url;
}
Comment puis-je faire cela?
Réponses:
Essaye ça:
la source
return site.replace(/\/+$/, "");
Remarque: IE8 et les versions antérieures ne prennent pas en charge les décalages de sous-titres négatifs. Utilisez
str.length - 1
plutôt si vous avez besoin de prendre en charge ces anciens navigateurs.la source
ES6 / ES2015 fournit une API pour demander si une chaîne se termine par quelque chose, ce qui permet d'écrire une fonction plus propre et plus lisible.
la source
str
se termine par une/
barre oblique. Vous devriez avoir deux assertions (ou deux tests), une avec une barre oblique et une sans.J'utiliserais une expression régulière:
Vous voudrez cependant vous assurer que la variable
site
est une chaîne.la source
Cet extrait est plus précis:
/
chaînes, car c'est une URL valide.la source
Je sais que la question concerne les barres obliques de fin, mais j'ai trouvé cet article lors de ma recherche de barres obliques de coupe (à la fois à la queue et à la tête d'une chaîne littérale), car les gens auraient besoin de cette solution, j'en publie une ici:
MISE À JOUR :
comme @Stephen R mentionné dans les commentaires, si vous voulez supprimer à la fois les barres obliques et les barres obliques inverses à la fois à la fin et à la tête d'une chaîne littérale, vous écrirez:
la source
.replace(/^[\\/]+|[\\/]+$/g, '')
Basé sur la réponse de @vdegenne ... comment se déshabiller:
Barre oblique de fin simple:
theString.replace(/\/$/, '');
Slashs de fin simples ou consécutifs:
theString.replace(/\/+$/g, '');
Barre oblique unique:
theString.replace(/^\//, '');
Barre oblique unique ou consécutive:
theString.replace(/^\/+/g, '');
Barres de début et de fin simples:
theString.replace(/^\/|\/$/g, '')
Barres obliques simples ou consécutives au début et à la fin:
theString.replace(/^\/+|\/+$/g, '')
Pour gérer à la fois les barres obliques et les barres obliques inverses, remplacez les instances de
\/
par[\\/]
la source
La façon la plus simple que je connais est la suivante
Cela vérifiera alors un / à la fin et si c'est là, supprimez-le si ce n'est pas le cas, votre chaîne retournera telle quelle
Juste une chose sur laquelle je ne peux pas encore commenter @ThiefMaster wow vous ne vous souciez pas de la mémoire, lol exécutez-vous un substr juste pour un si?
Correction du calucation pour l'index de base zéro sur la chaîne.
la source
Voici un petit exemple d'URL.
enregistrer la nouvelle URL
la source
une autre solution.
la source
la source
subtring
? En plus de cela, il supprime la première barre oblique et tout ce qui suit.substring
? Aussi oui, je voulais supprimer la première barre oblique et tout ce qui suit car elle remplit la facture pour la question et les exemples de données publiés.