1

の形式の URL がありますhttp://localhost:8080/testURL/location/#/old/Ds~1016

値 1016 は、選択したページに基づいて変更されます.. javascript で、(選択したページに基づいて) URL から番号 1016 の部分を取得することは可能ですか?

機能を試してみました

function getParameterByName(name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);

var results = regex.exec(window.location.search);
if (results == null)
    return "";
else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}
4

4 に答える 4

2

これを試して:

regex = new RegExp("[0-9]*$");
regex.exec(window.location.hash);

数値を取得するには、 を使用するだけregex.exec(window.location.hash)[0]で、4 桁の幅かどうかを確認する必要がある場合があります。

于 2012-10-12T05:41:29.520 に答える
2

組み込みの を使用できると思いますwindow.location。そして、regexあなたなしでできること:

a = "http://localhost:8080/testURL/location/#/old/Ds~1016";
a.substring(a.indexOf("~")+1); // 1016

または、より簡単な方法で、これを使用できます。

window.location.hash.split('~')[1]

ここでフィドルを見ることができます:http://jsfiddle.net/DqzQF/

すべての URL を試してみてください。

于 2012-10-12T05:42:54.467 に答える
2

この方法で試すこともできます

window.location.href.split('~').pop(-1)

それはあなたに与えるべきです"1016"

次の方が良いでしょうが

window.location.href.split('/').pop(-1).split('~').pop(-1)

分割する最後の「/」要素であることを確認する

アップデート

長期的には正規表現の方がパフォーマンスが向上しますが、コードがより理解しやすいため、単一の条件の場合は常に split() を使用することを好みます。ここで正規表現と分割のパフォーマンスを確認できます

于 2012-10-12T05:43:35.013 に答える
1

window.location.hash.split('~')[1]

説明:

最初にハッシュを取得します#/old/Ds~1016window.location.hash

さて、私たちsplitはハッシュします~(私はそれがURLで一度だけ来ると思います)

splitは、atindexとatindexの配列を返しDsます。0th10161st

だから、ついに

window.location.hash.split('~')[1] returns `1016`
于 2012-10-12T05:50:54.290 に答える