gpt4 book ai didi

javascript - 正则表达式获取具有不同协议(protocol)的域

转载 作者:行者123 更新时间:2023-12-02 14:55:33 28 4
gpt4 key购买 nike

我有这个正则表达式,它可以从字符串中提取域名。

var matches = str.match(/^https?\:\/\/([^\/:?#]+)(?:[\/:?#]|$)/i);

我想要相同的正则表达式,包括 rstp 等其他协议(protocol)。例如:

"http://www.example.com/a/".match(/^https?\:\/\/([^\/:?#]+)(?:[\/:?#]|$)/i)

结果:["http://www.example.com/", "www.example.com"]

我已经尝试过这个:

"http://www.example.com/a/".match(/^(http|https|rtsp)\:\/\/([^\/:?#]+)(?:[\/:?#]|$)/i)

但它也返回 http:["http://www.example.com/", "http", "www.example.com"]

我想要相同的输出。

谢谢。

最佳答案

您只需将协议(protocol)交替组转换为非捕获组,方法是在其前面添加 ?::

"http://www.example.com/a/".match(/^(?:http|https|rtsp)\:\/\/([^\/:?#]+)(?:[\/:?#]|$)/i)
//["http://www.example.com/", "www.example.com"]

关于javascript - 正则表达式获取具有不同协议(protocol)的域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35844976/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com