我刚刚开始使用正则表达式,但遇到了问题。所以如果有人能帮助我的话那就太好了。
问题是,如果我有一个如下所示的网址;
$url = http://www.blog.domain.com/page/category=?
并且只需要域,我如何使用javascript中的正则表达式来获取它。
谢谢
最佳答案
这也应该有效,但限制最多且更短:
var url = "http://www.blog.domain.com/page/category"
var result = url.replace(/^(https?:\/\/)?(.+\.)*(([a-z0-9-]*)\.[a-z]{2,6})(\/.+)$/i,"$4")
如果您想要“domain.com”而不仅仅是“域”,请使用 $3 而不是 $4。
逐步说明:
- 正确的域名语法:字母、数字和“-”
/([a-z0-9-]*)/i
- 域名扩展名(2-6 个字符):
/(([a-z0-9-]*)\.[a-z]{2,6})/i
- 子域名:
/(.+\.)*(([a-z0-9-]*)\.[a-z]{2,6})/i
- 以 http 或 https 开头的网址:
/^https?:\/\/(.+\.)*(([a-z0-9-]* )\.[a-z]{2,6})/i
- 输入网址时可以输入或不输入 http:
/^(https?:\/\/)?(.+\.)*(([a-z0-9-]*)\.[a-z]{2,6})/i
- 那么/后面是什么:
/^(https?:\/\/)?(.+\.)*(([a-z0-9-]*)\.[a-z]{2 ,6})(\/.+)$/i
关于javascript - 如何使用正则表达式获取主域字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27793115/