0

以下のすべての URL から ID (1337) を取得したいと思います。最善の方法は何ですか?ID は常に数値です。「/」で分割して、最初の数値を取得することはできますか? あなたのアイデアに感謝します。

実は最初のようなURLなのですが、タイプミスを防ぎたいです。

これがJSFiddleです:http://jsfiddle.net/vKJfw/

/* outputs "1337" */
var url = "http://www.mydomain.com/module/action/1337/"; 

/* error: outputs "action" */
// var url = "http://www.mydomain.com/module/action/1337";

/* error: outputs "action" */
// var url = "http://www.mydomain.com/module/action/1337#"; 

/* error: outputs "" */
// var url = "http://www.mydomain.com/module/action/1337//";

/* error: outputs "bla" */
// var url = "http://www.mydomain.com/module/action/1337/bla/?x=y";

var url_parts = url.split("/");
var id        = url_parts[url_parts.length-2];

alert(id); // should output "1337" everytime!
4

1 に答える 1

4
var id        = parseInt(url_parts[5]);

すべての例で機能します。

正規表現を使用して最初の数字を見つけることもできます。

var reg = /\d+/;
var id = reg.exec(url);

正規表現を使用すると、より堅牢なソリューションになる場合があります。

于 2013-05-09T14:13:29.753 に答える