2012-10-26 42 views
0

我想使用location.pathname.match發現而來的數some.domain.com/#123#後,這樣我可以從正則表達式在Javascript中查找URL中的英鎊符號?

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

改變一些Javascript代碼

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

這樣的方式,我呈現index123.ejs而不是index.ejs

我一直在研究如何做到這一點的正則表達式,我有點迷路。任何有幫助的靈魂都有神奇的答案?

[編輯:]你們都是巨大的幫助!我希望我不是太年輕,不喜歡你們!

回答

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. 
} 
+0

謝謝!我得到'window.location.hash'給我'#123',但parseInt似乎沒有按預期工作。但是,這讓我遠離了我所在的地方,所以再次感謝! – emandrawkcab

+0

啊好的 - 對不起,我雖然哈希會給英鎊符號後的字符串。答案已更新。 –

0
var result = location.pathname.match(/some.domain.com\/\#(.*)$/); 
alert(result [1]); 

而且不要忘記檢查,如果有結果[1] ...

+0

獲取,但沒有結果,但感謝任何幫助! – emandrawkcab

+0

那麼,如果你嘗試window.location而不是location.pathname,你可能會得到結果。 @羅蘭·鮑曼的做法是最有效的。 – OzrenTkalcecKrznaric

0

你最好的選擇是

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

如果你想使用正則表達式,你的代碼應該是這樣的:

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

檢查this demo

相關問題