如何使用javascript正则表达式从字符串中获取域

2023-12-09

正如标题所示,我正在尝试使用 javascript 正则表达式从字符串中检索域。

取以下字符串:

String                                  ==>     Return
"google"                                ==>     null
"google.com"                            ==>     "google.com"
"www.google.com"                        ==>     "www.google.com"
"ftp://ftp.google.com"                  ==>     "ftp.google.com"
"http://www.google.com"                 ==>     "www.google.com"
"http://www.google.com/"                ==>     "www.google.com"
"https://www.google.com/"               ==>     "www.google.com"
"https://www.google.com.sg/"            ==>     "www.google.com.sg"
"https://www.google.com.sg/search/"     ==>     "www.google.com.sg"
"*://www.google.com.sg/search/"         ==>     "www.google.com.sg"

我已经读过“正则表达式查找不带 www 的域名 - 堆栈内存溢出” and “从字符串中提取根域名 - 堆栈内存溢出”但它们太复杂了,所以我尝试编写自己的正则表达式:

var re = new RegExp("[\\w]+[\\.\\w]+");
/[\w]+[\.\w]+/
re.exec(document.URL);

可以很好地配合"google.com", "www.google.com" and "www.google.com.sg"但返回http with "http://google.com/", "http://www.google.com/" etc.

由于我是正则表达式的新手,我似乎无法弄清楚出了什么问题......有什么想法吗?

提前致谢!


使用这个正则表达式:

/(?:[\w-]+\.)+[\w-]+/

这里有一个正则表达式演示!

采样:

>>> var regex = /(?:[\w-]+\.)+[\w-]+/
>>> regex.exec("google.com")
... ["google.com"]
>>> regex.exec("www.google.com")
... ["www.google.com"]
>>> regex.exec("ftp://ftp.google.com")
... ["ftp.google.com"]
>>> regex.exec("http://www.google.com")
... ["www.google.com"]
>>> regex.exec("http://www.google.com/")
... ["www.google.com"]
>>> regex.exec("https://www.google.com/")
... ["www.google.com"]
>>> regex.exec("https://www.google.com.sg/")
... ["www.google.com.sg"]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用javascript正则表达式从字符串中获取域 的相关文章

随机推荐