是否有一个已知的JavaScript正则表达式可以匹配整个URL连接字符串?
protocol://user:password@hostname: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:password@
user@
:password@
/segment1
?p1=val1
- 等等...
当涉及到有效符号时,标准RFC 3986规则应适用于所有部件。
我正在寻找的东西,将在Node.js和所有浏览器工作.
我已经在connection-string中做了一个单独的逐段解析,但问题是-它不允许验证,即判断整个过程是否有效。
2条答案
按热度按时间lf3rwulv1#
Java数据源连接URL模式示例(如果需要):
Sample
java #正则表达式
ws51t4hk2#
像这样?
正则表达式模式here on regex101的测试