回答
使用正則表達式,如/(?:https?:\/\/)?(?:www\.)?(.*?)\//
:
var str = "https://www.gmail.com/anything";
var match = str.match(/(?:https?:\/\/)?(?:www\.)?(.*?)\//);
console.log(match[match.length-1]); //gmail.com (last group of the match)
注:這將讓該HTTP/HTTPS協議,不包括WWW之後的一切 - 到第一個斜槓。
額外注:很多站點上使用子域名 - 因此mail.google.com
會突然變得google.com
,因此無法正常工作。礦山包括除從www
每個子域。
感謝和它的工作和問題是我可能會或可能不會得到https 例如:也得到www.gmail.com。那麼我怎麼能改變這個工作? –
@kittuss通過使用問號。 'https?:\/\ /'表示「字符串」http「,後面跟着一個可選的's',後面跟着'://'」。因此'(https?:\/\ /)?'表示前一個,但問號表示「重複1或0次」(所以它是可選的)。檢查我的更新的工作代碼的答案。當括號以'?:'開始時,它是一個非捕獲組,意思是「不要把這個匹配放入我們的匹配結果中」。 – h2ooooooo
非常感謝..這就像一個魅力! –
您可以使用<a>
來獲取有關URL的信息。例如:
var a = document.createElement("a");
a.href = "http://www.google.com";
可以檢索與域:
var domain = a.hostname;
你可以剝去所有 「www。」:
domain = domain.replace(/^www\./, "");
作爲一種可重複使用的功能,你可以用途:
function getDomain(url) {
var a, domain;
a = document.createElement("a");
a.href = url;
domain = a.hostname;
domain = domain.replace(/^www\./, "");
return domain;
}
DEMO:http://jsfiddle.net/DuK6D/
More info/attributes about the HTMLAnchorElement JS object on MDN
喜歡這個。非常簡單,有效和萬無一失 – mvinayakam
- 1. 查找域名沒有WWW的正則表達式的實例
- 2. 正則表達式查找用戶名
- 3. Boost正則表達式查找主機/域名
- 4. 正則表達式查找
- 5. 查找正則表達式
- 6. 查找正則表達式
- 7. 正則表達式查找和添加
- 8. 爲www和非www域名正則表達式的解決方案
- 9. 添加http:// www。到這個正則表達式和禁止子域名
- 10. Javascript /正則表達式找到沒有子域的根域名
- 11. preg_match_all正則表達式子域名
- 12. 正則表達式的有效域名
- 13. 正則表達式條域名
- 14. 正則表達式的網址域名
- 15. 域名正則表達式不匹配
- 16. 正則表達式與域名匹配
- 17. 有效的域名正則表達式
- 18. 獲取域名正則表達式
- 19. 域名正則表達式.htaccess
- 20. 正則表達式匹配域名
- 21. 正則表達式來查找公式
- 22. 在查詢中查找所有表名的正則表達式
- 23. Nutch域正則表達式
- 24. 正則表達式不匹配「www」
- 25. 正則表達式來找到全名
- 26. 正則表達式與子域工作,並去除WWW
- 27. 正則表達式過濾子域以www
- 28. 正則表達式:每一個字母子域,除了WWW
- 29. 正則表達式從域名中找到TLD
- 30. 需要正則表達式來獲得域名+子域名
你嘗試過什麼了嗎? – j08691
你嘗試了什麼? SO不是一個代碼生成器。 –
我試過了,我的正則表達式是(?<= \。|)\ w + \。\ w + $它在ruby中工作不在coffescript –