web-dev-qa-db-ja.com

URLの最後のディレクトリを削除

URLの最後のディレクトリ部分を削除しようとしています。私のURLは次のようになります。

_https://my_ip_address:port/site.php?path=/path/to/my/folder_。

ボタンをクリックしたときに、これを

_https://my_ip_address:port/site.php?path=/path/to/my_。 (最後の部分を削除してください)。

私はすでにwindow.location.replace(/\/[A-Za-z0-9%]+$/, "")を試しましたが、

_https://my_ip_address:port/undefined_。

これを行うにはどのRegexを使用すればよいですか?

23
pascalhein

説明:「/」で分解し、最後の要素をpopで削除して、もう一度「/」で結合します。

function RemoveLastDirectoryPartOf(the_url)
{
    var the_arr = the_url.split('/');
    the_arr.pop();
    return( the_arr.join('/') );
}

フィドルを参照 http://jsfiddle.net/GWr7U/

35
Sharky

このコードを使用して、URLリンクから最後の要素を削除します。

url.substring(0, url.lastIndexOf('/'));
24
Thivan Mydeen

以下は、/、 ""、fooおよび/fooを正しく処理するコードです(それぞれ/、 ""、foo、および/を返します)。

function parentDirectory(dir: string): string {
  const lastSlash = dir.lastIndexOf('/');
  if (lastSlash === -1) {
    return dir;
  }
  if (lastSlash === 0) {
    return '/';
  }
  return dir.substring(0, lastSlash);
}

JavaScriptの:stringsを削除するだけです。異なる動作が必要な場合もありますが、少なくともconsiderこれらのEdgeケースが必要です。

0
Timmmm