回答:
これを試して:
function someFunction(site)
{
return site.replace(/\/$/, "");
}
return site.replace(/\/+$/, "");
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
ただし、変数が文字列であることを確認する必要があります。
このスニペットはより正確です:
str.replace(/^(.+?)\/*?$/, "$1");
/
有効なURLであるため、文字列を削除しません。質問は末尾のスラッシュに関するものですが、トリミングスラッシュ(文字列リテラルの末尾と先頭の両方)を検索しているときにこの投稿を見つけました。
'///I am free///'.replace(/^\/+|\/+$/g, ''); // returns 'I am free'
更新:
@Stephen Rは、コメントに記載された両方のテールと文字列リテラルの先頭にスラッシュとバックスラッシュの両方を削除したい場合は、次のように記述します。
'\/\\/\/I am free\\///\\\\'.replace(/^[\\/]+|[\\/]+$/g, '') // returns 'I am free'
.replace(/^[\\/]+|[\\/]+$/g, '')
私が知っている簡単な方法はこれです
function stipTrailingSlash(str){
if(srt.charAt(str.length-1) == "/"){ str = str.substr(0, str.length - 1);}
return str
}
これは最後に/をチェックし、そこにある場合は削除し、それがない場合は文字列を返します
私がまだコメントできないことの1つだけ@ThiefMasterすごいあなたはメモリについて気にしないでくださいifだけのためにsubstrをrunnign笑しますか?
文字列のゼロベースのインデックスの計算を修正しました。
@vdegenneの回答に基づいて...取り除く方法:
単一の末尾のスラッシュ:
theString.replace(/\/$/, '');
単一または連続したスラッシュ:
theString.replace(/\/+$/g, '');
単一の先行スラッシュ:
theString.replace(/^\//, '');
単一または連続した先行スラッシュ:
theString.replace(/^\/+/g, '');
単一の先頭と末尾のスラッシュ:
theString.replace(/^\/|\/$/g, '')
単一または連続した先頭と末尾のスラッシュ:
theString.replace(/^\/+|\/+$/g, '')
スラッシュとバックスラッシュの両方を処理するには、のインスタンス\/
を[\\/]
function someFunction(site) {
if (site.indexOf('/') > 0)
return site.substring(0, site.indexOf('/'));
return site;
}
subtring
?その上、最初のスラッシュとその後のすべてを削除します。
substring
か?また、はい、私は最初のスラッシュとそれ以降のすべてを削除するつもりでした。それは、投稿された質問とサンプルデータの請求書を埋めるためです。