簡體   English   中英

如何使用javascript正則表達式從字符串中獲取域

[英]How to get domain from a string using javascript regular expression

正如標題所示,我正在嘗試使用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找到沒有www的域名 - Stack Overflow”“從字符串中提取根域名 - 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-]+/

這是一個正則表達式演示

采樣:

>>> 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中使用這個正則表達式:

\b(?:(?:https?|ftp):\/\/)?([^\/\n]+)\/?

RegEx演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM