2010-01-18 67 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]+)?(/.+)?