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