Ich habe zwei Variablen:
site1 = "www.somesite.com";
site2 = "www.somesite.com/";
Ich möchte so etwas tun
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;
}
Wie mache ich das?
Antworten:
Versuche dies:
quelle
return site.replace(/\/+$/, "");
Hinweis: IE8 und älter unterstützen keine negativen Substrat-Offsets. Verwenden Sie
str.length - 1
stattdessen, wenn Sie diese alten Browser unterstützen müssen.quelle
ES6 / ES2015 bietet eine API für die Frage, ob eine Zeichenfolge mit etwas endet, wodurch eine sauberere und besser lesbare Funktion geschrieben werden kann.
quelle
Ich würde einen regulären Ausdruck verwenden:
Sie sollten jedoch sicherstellen, dass die Variable
site
eine Zeichenfolge ist.quelle
Dieses Snippet ist genauer:
/
Zeichenfolgen entfernt, da es sich um eine gültige URL handelt.quelle
Ich weiß, dass es sich bei der Frage um nachgestellte Schrägstriche handelt, aber ich habe diesen Beitrag bei meiner Suche nach Schrägstrichen (sowohl am Ende als auch am Kopf eines String-Literal) gefunden, da die Leute diese Lösung benötigen würden. Ich poste hier einen:
UPDATE :
Wie @Stephen R in den Kommentaren erwähnt, würden Sie schreiben, wenn Sie sowohl Schrägstriche als auch Backslashes sowohl am Ende als auch am Kopf eines String-Literal entfernen möchten:
quelle
.replace(/^[\\/]+|[\\/]+$/g, '')
Die Leichtigkeit, die ich kenne, ist diese
Dies wird dann am Ende nach einem / suchen und wenn es dort ist, entfernen Sie es, wenn es nicht ist, wird Ihre Zeichenfolge so zurückgegeben, wie sie war
Nur eine Sache, die ich noch nicht kommentieren kann @ThiefMaster wow, du interessierst dich nicht für das Gedächtnis, läufst du ein Substr nur für ein Wenn?
Die Berechnung für den auf Null basierenden Index für die Zeichenfolge wurde korrigiert.
quelle
Hier ein kleines URL-Beispiel.
Protokolliere die neue URL
quelle
Basierend auf der Antwort von @vdegenne ... wie man sich auszieht:
Einfacher abschließender Schrägstrich:
theString.replace(/\/$/, '');
Einzelne oder aufeinanderfolgende nachgestellte Schrägstriche:
theString.replace(/\/+$/g, '');
Einzelner führender Schrägstrich:
theString.replace(/^\//, '');
Einzelne oder aufeinanderfolgende führende Schrägstriche:
theString.replace(/^\/+/g, '');
Einzelne führende und nachfolgende Schrägstriche:
theString.replace(/^\/|\/$/g, '')
Einzelne oder aufeinanderfolgende führende und nachfolgende Schrägstriche:
theString.replace(/^\/+|\/+$/g, '')
Ersetzen Sie Instanzen von durch , um sowohl Schrägstriche als auch Schrägstriche
\/
zu behandeln[\\/]
quelle
eine andere Lösung.
quelle
quelle
subtring
? Außerdem wird der erste Schrägstrich und alles danach entfernt.substring
? Ja, ich wollte auch den ersten Schrägstrich und alles danach entfernen, da er die Rechnung für die gestellten Fragen und Beispieldaten ausfüllt.