是否有已知的JavaScript正則表達式來匹配整個URL連接字符串?正則表達式的URL連接字符串
protocol://user:[email protected]:12345/segment1/segment2?p1=val1&p2=val2
我正在尋找一個正則表達式,這將有助於我這樣一個連接字符串轉換成一個對象:
{
protocol: 'protocol',
user: 'user',
password: 'password',
host: 'hostname:12345',
hostname: 'hostname',
port: 12345,
segments: ['segment1', 'segment2'],
params: {
p1: 'val1',
p2: 'val2'
}
}
另外,我想連接字符串的每一個部分是可選,所以缺少的參數可以由環境中的值填充。
例子:
protocol://
server:12345
:12345
- 爲對端口只user:[email protected]
[email protected]
:[email protected]
/segment1
?p1=val1
- 等等...
標準RFC 3986規則應適用於所有的部位,當涉及到有效符號。
我正在尋找可以在Node.js和所有瀏覽器中工作的東西。
我在connection-string內完成了一個單獨的解析,但問題在於 - 它不允許驗證,即告訴整個事情是否有效。
的【如何解析URL?](https://stackoverflow.com/questions/6168260/how-to-parse-a-url) –
愚弄的人@WiktorStribiżew有沒有答案,那將支持URL的所有部分是可選的,按照我的例子。 –
我不認爲正則表達式是這個問題的一個好主意。你爲什麼不手動解析URL然後構造所需的對象? –