2010-01-18 54 views
0

我希望有人能帮助我,我使用Javascript和ASP需要一些正则表达式的帮助的JavaScript

我有这个字符串/folder1/folder2/pagename.asp

我需要一个正则表达式来剥离从字符串/pagename.asp

pagetype.replace(/\/.*?\.asp/ig, ''); 

上述正则表达式是半路但问题是,它来自之间开始/所有/和.asp的

豪strippes我是否会使正则表达式变得懒惰,以至于它只会在最后一个/和.asp之间去掉?

任何帮助,将不胜感激!

+0

仅供参考 - 你可能想使用RegexBuddy的副本:http://www.regexbuddy.com/它的正则表达式转换成简单的英语,并通过向您展示您的选择及其含义,帮助您建立新的表达方式。 – 2010-01-18 20:23:06

回答

2

试试这个:

pagetype.replace(/\/[^\/]*\.asp/ig, ''); 

我用[^\/]组表示不等于/任何符号。

+0

谢谢伊万 - 作品100% – 2010-01-18 20:24:40

2
/(.*)\/.*?\.asp/ig 

的问题是,正则表达式是匹配的地 - 一个解决方案是将一个贪婪的量词在一开始,以便它吃掉了所有可能的早场比赛,你会得到最后一个。

我们使用一个捕获组来抓住这个位,所以我们可以保留它。

+0

谢谢匿名 - 作品100% – 2010-01-18 20:24:31

1

当然利用这一点,将剥离的页面名和扩展名:


(\w+)(\.\w+)(:[0-9]+)?(/.+)?