2013-03-01 84 views
0

前段时间,我在写一个正则表达式来帮助我比较当前页面与该正则表达式的位置,并在特定情况下采取行动。该代码的一个例子是:Javascript,根据页面URL采取行动

var re1 = new RegExp('^http://([^\.]+)\.domain\.com/subpage(.*)$'); 

if(window.location.href.match(re1)) 
{ 
    // Do more 
} 

在这种情况下,我可以编写一些只能在子页面上执行的代码。迄今为止,它的运作非常好。但是我遇到了一个需要进一步帮助正则表达式的问题。

想象一下这样一个网站:http://websitenamepreview.testserver.designcompanyname.com/subpage

我怎样才能适应这个代码在这样一个URL工作的?只要从这个测试服务器运行,唯一可能会改变的是子页面。

+0

我发现了一个帖子说可以帮忙,请大家看看: http://stackoverflow.com/a/6941624/558486 – 2013-03-01 20:38:06

+0

@RuiJarimba谢谢!这实际上有帮助。 – user1729506 2013-03-01 21:08:33

回答

1

使用你原来的代码,你可以将其更改为^http://([^\.]+\.)+domain\.com/subpage(.*)$

当然,对于这个特殊的测试数据,它不会匹配,因为你没有“domain.com”为结束域名在您的测试网址中。

如果你可以给我们介绍一下什么部分是很重要一点的更多信息,哪些部分可能在你的选配数据等改变,我们也许可以让它变得不那么复杂。

+0

对于这个测试服务器,一直到.com的URL可能永远不会改变。只是子页面。我只需要在.com之后检查任何可能的/页面/页面/页面,真的。 – user1729506 2013-03-01 21:06:26

+0

在这种情况下,你可能会用'^ http:// [^ /]。+ /(。*)$'离开。 捕获URL中第一个“/”之后的任何内容。 – talemyn 2013-03-01 21:16:53