是否存在一个已知的JavaScript正则表达式来匹配整个URL连接字符串?
protocol://user:password@hostname:12345/segment1/segment2?p1=val1&p2=val2
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个正则表达式,它将帮助我将这样的连接字符串转换为对象:
{
protocol: 'protocol',
user: 'user',
password: 'password',
host: 'hostname:12345',
hostname: 'hostname',
port: 12345,
segments: ['segment1', 'segment2'],
params: {
p1: 'val1',
p2: 'val2'
}
}
Run Code Online (Sandbox Code Playgroud)
另外,我希望连接字符串的每个部分都是可选的,因此缺少的参数可以由环境中的值填充。
例子:
protocol://server:12345:12345 -仅用于端口user:password@user@:password@/segment1?p1=val1关于有效符号,标准RFC 3986规则应适用于所有零件。
我正在寻找可以在Node.js和所有浏览器中使用的东西。
我已经在connection-string中逐个进行了单独的解析,但是有一个问题-它不允许验证,即无法确定整个事情是否有效。