Возвращает строку без Слэша
у меня есть две переменные:
site1 = "www.somesite.com";
site2 = "www.somesite.com/";
Я хочу сделать что-то подобное
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;
}
Как мне это сделать?
9 ответов
function stripTrailingSlash(str) {
if(str.substr(-1) === '/') {
return str.substr(0, str.length - 1);
}
return str;
}
Примечание: IE8 и старше не поддерживают отрицательные смещения substr. Использовать str.length - 1
вместо этого, если вам нужно поддерживать эти древние браузеры.
Я бы использовал регулярное выражение:
function someFunction(site)
{
// if site has an end slash (like: www.example.com/),
// then remove it and return the site without the end slash
return site.replace(/\/$/, '') // Match a forward slash / at the end of the string ($)
}
вы хотите убедиться, что переменная site
- это строка.
ES6 / ES2015 предоставляет API для запроса, заканчивается ли строка чем-то, что позволяет писать более чистую и читаемую функцию.
const stripTrailingSlash = (str) => {
return str.endsWith('/') ?
str.slice(0, -1) :
str;
};
этот фрагмент более точен:
str.replace(/^(.+?)\/*?$/, "");
- Это не полоски
/
strings, так как это допустимый url. - он полосует строки с несколькими косыми чертами.
легкий способ, о котором я знаю, это
function stipTrailingSlash(str){
if(srt.charAt(str.length-1) == "/"){ str = str.substr(0, str.length - 1);}
return str
}
Это будет проверять / на конец, и если его там удалить его, если его не вернет вашу строку, как это было
только одна вещь, которую я пока не могу прокомментировать @ThiefMaster wow вы не заботитесь о памяти вы lol runnign substr только для if?
исправлена calucation для нулевой индекс в строке.
Я знаю, что вопрос о трейлинг-косых чертах, но я наткнулся на этот пост при поиске о обрезке косых черт (как головных, так и хвостовых), и этот пост помог мне решить мою проблему, поэтому вот как обрезать одну или несколько косых черт как в начале, так и в конце строки :
'///I am free///'.replace(/^\/+|\/+$/g, ''); // returns 'I am free'
вот небольшой пример url.
var currentUrl = location.href;
if(currentUrl.substr(-1) == '/') {
currentUrl = currentUrl.substr(0, currentUrl.length - 1);
}
войти новый url
console.log(currentUrl);
function someFunction(site) {
if (site.indexOf('/') > 0)
return site.substring(0, site.indexOf('/'));
return site;
}