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

标签 javascript regex string string-matching capturing-group

正如标题所示,我正在尝试使用 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"

我已经阅读了"Regex to find domain name without www - Stack Overflow""Extract root domain name from string - Stack Overflow"但是它们太复杂了,所以我尝试编写自己的正则表达式:
var re = new RegExp("[\\w]+[\\.\\w]+");
/[\w]+[\.\w]+/
re.exec(document.URL);

这适用于 "google.com" , "www.google.com""www.google.com.sg"但返回 http"http://google.com/" , "http://www.google.com/"等等

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

提前致谢!

最佳答案

使用这个正则表达式:

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

这是 regex demo !

采样:
>>> 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"]

关于javascript - 如何使用 javascript 正则表达式从字符串中获取域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25323126/

相关文章:

javascript - javascript中如何释放闭包的内存?

R中的正则表达式否定

php - 更改 PHP 代码以允许传递唯一 ID

Java JList 不需要的 toString() 转换

Javascript 三元运算符左值

javascript - 使用 div 重新创建行为 "background-attachment: fixed"

javascript - 测试互斥的 JavaScript

javascript - jQuery javascript regex 将 <br> 替换为\n

iphone - 正则表达式在 iPhone 上崩溃

swift - 字符串插值麻烦