用于在Javascript中查找URL中的井号的正则表达式?

时间:2012-10-26 23:13:09

标签: regex

我想使用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

我一直在研究如何做到的正则表达式,我有点迷失。任何有用的灵魂都有神奇的答案吗?

[编辑:]你们都得到了巨大的帮助!我希望我不是太新,不能支持你们!

3 个答案:

答案 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