0

次のようなパスを含む文字列があります

/foo/bar/baz/hello/world/bla.html

ここで、最後から 2 番目の からすべてを取得したいと思います。/つまり、結果は次のようになります。

/world/bla.html

これは正規表現を使用して可能ですか? もしそうなら、どのように?

私の現在の解決策はsplit、文字列を配列に入れ、最後の 2 つのメンバーを再度結合することですが、これよりも優れた解決策があると確信しています。

4

5 に答える 5

3

あなたもできる

str.split(/(?=\/)/g).slice(-2).join('')
于 2013-07-26T13:53:06.040 に答える
2
> '/foo/bar/baz/hello/world/bla.html'.match(/(?:\/[^/]+){2}$/)[0]
"/world/bla.html"

正規表現なし:

> var s = '/foo/bar/baz/hello/world/bla.html';
> s.substr(s.lastIndexOf('/', s.lastIndexOf('/')-1))
"/world/bla.html"
于 2013-07-26T13:49:16.950 に答える