[javascript] 末尾にスラッシュのない文字列を返す



3 Answers

function stripTrailingSlash(str) {
    if(str.substr(-1) === '/') {
        return str.substr(0, str.length - 1);
    }
    return str;
}

注:IE8以前のバージョンは、負のsubstrオフセットをサポートしていません。 これらの古代のブラウザをサポートする必要がある場合は、代わりにstr.length - 1使用してください。

Question

私には2つの変数があります:

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;
}

これはどうすればいいですか?




このスニペットはより正確です:

str.replace(/^(.+?)\/*?$/, "$1");
  1. これは有効なURLなので、ストリップ/文字列ではありません。
  2. 複数のスラッシュを含む文字列を取り除きます。



私は質問が後続のスラッシュについて知っていることを知っていますが、スラッシュ(頭と尾のスラッシュの両方)を検索するときにこの投稿を見つけました。この投稿は私の問題を解決するのに役立ちました。文字列の開始と終了:

'///I am free///'.replace(/^\/+|\/+$/g, ''); // returns 'I am free'



ES6 / ES2015では、文字列が何かで終わるかどうかを確認するためのAPIが用意されているため、よりクリーンで読みやすい機能を記述できます。

const stripTrailingSlash = (str) => {
    return str.endsWith('/') ?
        str.slice(0, -1) :
        str;
};



Related