我想使用location.pathname.match
查找#
some.domain.com/#123
之后的数字,以便我可以更改某些Javascript代码
res.render('index.ejs' ...
到
var pageNum = location.pathname.match(REGULAR_EXPRESSION_GOES_HERE)[1];
res.render('index' + pageNum + '.ejs' ...
这样,我渲染index123.ejs
而不是index.ejs
。
我一直在研究如何做到的正则表达式,我有点迷失。任何有用的灵魂都有神奇的答案吗?
[编辑:]你们都得到了巨大的帮助!我希望我不是太新,不能支持你们!
答案 0 :(得分: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.
}
答案 1 :(得分:0)
var result = location.pathname.match(/some.domain.com\/\#(.*)$/);
alert(result [1]);
不要忘记检查是否结果[1] ......
答案 2 :(得分:0)
你最好的选择是
var pageNum = window.location.hash.replace(/\D+/g, '');
如果您想使用正则表达式,您的代码应如下所示:
var pageNum = location.pathname.match(/#(\d+)/)[1];
检查 this demo 。