0

の後にlocation.pathname.match続く数字を見つけて、Javascriptコードを#some.domain.com/#123

res.render('index.ejs' ...

var pageNum = location.pathname.match(REGULAR_EXPRESSION_GOES_HERE)[1];
res.render('index' + pageNum + '.ejs' ...

index123.ejsそのように、代わりにレンダリングしますindex.ejs

私はそれを行う方法について正規表現を調べてきましたが、少し迷っています。そこに役立つ魂が魔法の答えを持っていますか?

[編集:] 皆様、大変お世話になりました!皆さんに賛成票を投じるには、私が新人すぎなかったらよかったのに!

4

3 に答える 3

3

このすべてのマニュアルは必要ありません。ロケーションオブジェクトには、hashプロパティに必要なデータがあります。参照: https://developer.mozilla.org/en-US/docs/DOM/window.location

したがって、次のようにします。

var hash = window.location.hash;
if (hash.length && !isNaN(hash = parseInt(hash.substr(1)))) {
    res.render('index' + hash + '.ejs');
}
else {
    //oops, hash is not a number. Handle it.
}
于 2012-10-26T23:24:45.350 に答える
0

あなたの最善の策は

var pageNum = window.location.hash.replace(/\D+/g, '');

正規表現を使用する場合、コードは次のようになります。

var pageNum = location.pathname.match(/#(\d+)/)[1];

このデモを確認してください。

于 2012-10-26T23:36:44.120 に答える
0
var result = location.pathname.match(/some.domain.com\/\#(.*)$/);
alert(result [1]);

結果[1]があるかどうかを確認することを忘れないでください...

于 2012-10-26T23:19:53.923 に答える