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を使用すればよいですか?
説明:「/」で分解し、最後の要素をpopで削除して、もう一度「/」で結合します。
function RemoveLastDirectoryPartOf(the_url)
{
var the_arr = the_url.split('/');
the_arr.pop();
return( the_arr.join('/') );
}
フィドルを参照 http://jsfiddle.net/GWr7U/
このコードを使用して、URLリンクから最後の要素を削除します。
url.substring(0, url.lastIndexOf('/'));
以下は、/
、 ""、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の:string
sを削除するだけです。異なる動作が必要な場合もありますが、少なくともconsiderこれらのEdgeケースが必要です。