javascript - 正则表达式从 URL 获取域名,等等

标签 javascript regex

网上有很多这样的帖子,但似乎没有一个能实现我想要做的事情。

假设我在字符串中有一个域:

Extract hostname name from string

我想提取域名而不是其他内容(不是协议(protocol)、子域或文件扩展名)。

所以对于

https://stackoverflow.com/questions/8498592/extract-root-domain-name-from-string

我想要得到:

stackoverflow.com

有什么办法可以做到这一点吗?

最佳答案

试试这个:

var url = 'http://stackoverflow.com/questions/8498592/extract-root-domain-name-from-string';
var domain = url.match(/^https?:\/\/([^\/?#]+)/)[1];
alert(domain);

这会查找以 http 和可选的 s 开头,后跟 :// 的字符串,然后匹配它可以匹配的所有内容不是 /。但是 .match() 在这里返回一个数组:

['http://stackoverflow.com', 'stackoverflow.com']

因此,我们使用[1]来获取子匹配。

关于javascript - 正则表达式从 URL 获取域名,等等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24900060/

相关文章:

javascript - 将产品添加到购物车时,会为产品添加默认选项,但不会添加选定的选项

javascript - 当 div 触摸浏览器顶部时添加类

javascript - 是否可以在加载时从 iFrame 中的 <head> 修改外部源

regex - [A-z0-9]+ 正则表达式匹配方括号

java - 有没有办法在正则表达式(java)中使用\p{Punct}\p{Lower}\p{Upper},但没有 "."字符?

node.js - NodeJS 中的非捕获分支重置正则表达式

javascript - Sinatra:呈现表单输入而不重定向

javascript - 组合 API 与纯 JavaScript

c# - 如何拆分仅由空格分隔的名称列表(带有标题和姓氏)?

php - 替换字符串中的嵌套双引号