顾名思义,我正在尝试使用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的域名-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"]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句