2011-07-15 36 views
0

的我需要的是一個普通快遞將解析URL的第一個目錄:正則表達式解析出一詞URL

www.mydomain.com/ find_this /什麼/什麼..

所以 - 我不知道如何構造一個正則表達式來獲取包含該第一個目錄的字符串,任何幫助表示讚賞。

編輯 - 解析不是一個選項,我試圖創建一個正則表達式。

+0

正則表達式是什麼味道? –

回答

2

試試這個:

str = "www.mydomain.com/find_this/anything/anything"; 
path = /(?:http\:\/\/)?(?:www)?\.mydomain\.com\/([^\/]+)/.exec(str) [1] 
1

你可以這樣做:

var myString = "www.mydomain.com/find_this/anything/blah" 
var string_I_want = myString.replace(/\/\//g, "").split("/")[1] 

更容易閱讀。

+0

我正在尋找特定原因的正規快遞。沒有解析。 – Atticus

+0

@Atticus這是一個聰明的答案,你應該展示你的嘗試。 –

+0

尋找正則表達式在.htaccess中使用? –

0

的東西,通過第一個捕獲組(原正則表達式)匹配:

^(?:https?://)?(?:\w+)(\.\w+)*(?:\:\d+)/([^/]+) 

匹配可選http:///https://,Web服務器/ IP /端口的話,第一組是你想要的。

var url = 'www.mydomain.com/find_this/anything/anything'; 
var match = /^(?:https?:\/\/)?(?:\w+)(\.\w+)*(?:\:\d+)\/([^\/]+)/.exec(url); 
var root = match[1]; 
0

這裏有一些選擇:

隨着捕獲:

/(.*?)/ 

使用命名捕獲:

/(?<first_directory>.*?)/ 

隨着協議和捕獲:

(?:https?://.*?)?/(.*?)/ 

隨着協議和命名捕獲:

(?:https?://.*?)?/(?<first_directory>.*?)/ 

你只需要翻譯爲你的口味。

0

只是嘗試以下操作:

var rootDir = location.pathname.replace(/(^\/\w+\/).*/,"$1"); 
+0

如果您需要當前瀏覽器位置的第一個目錄,則此功能起作用。 –