3

/ と / の間の URL である URL の最後の単語を取得するにはどうすればよいですか?

例えば:

http://mywebsite.com/extractMe/test

http://mywebsite.com/extractMe

http://mywebsite.com/settings/extractMe/test

http://mywebsite.com/settings/extractMe

extractMeここでは、URLから取得したいと思います。

4

4 に答える 4

3

URL が一貫している場合は、以下を使用しない理由:

// Option 1
var url = "http://mywebsite.com/extractMe/test";
var extractedText = url.split("/")[3];

​// Option 2
// If when a trailing slash is present you want to return "test", use this code
var url = "http://mywebsite.com/extractMe/test/";
var urlAry = url.split("/");
var extractedText = urlAry[urlAry.length - 2];

​// Option 3
// If when a trailing slash is present you want to return "extractMe", use this:
var url = "http://mywebsite.com/extractMe/test/";
var urlAry = url.split("/");
var positionModifier = (url.charAt(url.length-1) == "/") ? 3 : 2;    
var extractedText = urlAry[urlAry.length - positionModifier];

これが実用的なフィドルです:http://jsfiddle.net/JamesHill/Arj9B/

于 2012-06-20T16:42:21.890 に答える
1

それは最終的にそれの有無にかかわらず動作します:)

var url = "http://mywebsite.com/extractMe/test/";    
var m = url.match(/\/([^\/]+)[\/]?$/);

console.log(m[1]);

出力: テスト

于 2012-06-20T17:02:10.957 に答える
0

http://mywebsite.com/extractMe/testこれは、 とのような URL の両方を説明します。http://mywebsite.com/extractMe/

function processUrl(url)
{
    var tk = url.split('/');
    var n = tk.length;
    return tk[n-2];
}

編集しました。

于 2012-06-20T16:47:06.840 に答える
0

正規表現の方法:

var str = "http://example.com/extractMe/test";
var match = str.match(/\/([^\/]+)\/[^\/]+$/);

if (match) {
    console.log(match[1]);
}
于 2012-06-20T16:55:40.447 に答える