2016-12-13 1 views
1

末尾に/を含むURLの最後の部分を取得します。文字列 'の後に/が存在しません。 少なくとも前の部分を取得する必要があります。この場合はログインしてください。私はこのURLの最後の部分を取得しようとしている

どうすればいいですか?これが何をすべき

var url = 'http://webserver/Foo/login/', 
 
    last_section = url.replace(/\/+$/, '').split('/').pop(); 
 
    
 
console.log(last_section);

+1

'.pop()。pop()'を試してください しかし理想的には、最後に '/'で文字列を解析しないでください。 – Jack

+0

^マグニチュードがStackOverflowにあることを理解できませんでした。 – Santi

+0

@Jack '.pop()'をチェーンすることはできません。最初のものは文字列を返します。 –

答えて

2

ソリューショントリック:

location.pathname.match(/[^/]*(?=\/*$)/)[0] 

説明:

例:これらのすべてのURLについて

出力loginある:

  • http://webserver/Foo/login
  • http://webserver/Foo/login/
  • http://webserver/Foo/login//
+0

これはlogin /////のような不正な形式のURLに対して機能しますか? – AgainMe

+1

@AgainMe、私の最後の編集( '/ \/+ $ /') - そう、それは動作します。試してみると、 – RomanPerekhrest

+0

は本当に素晴らしい解決策です。 – AgainMe

1

const getLastPartURL = url => { 
 
    const parts = url.split('/'); 
 
    const length = parts.length; 
 
    return parts[length - 1] == '' ? parts[length - 2] : parts[length - 1] 
 
} 
 

 
console.log(getLastPartURL('http://webserver/Foo/login/')) 
 
console.log(getLastPartURL('http://webserver/Foo/login')) 
 
console.log(getLastPartURL('http://webserver/Foo/')) 
 
console.log(getLastPartURL('http://webserver/Foo'))

0

String.replace()(文字列の末尾に/可能性を置き換えるために使用される)とString.split()機能を使用して

関連する問題