在前端开发中,获取当前页面的域名是一个常见需求。JavaScript提供了多种方法来获取域名信息,本文将详细介绍这些方法及其应用场景。
最常用的方法是通过window.location对象获取域名:
// 获取完整域名(包含子域名)
const fullDomain = window.location.hostname;
console.log(fullDomain); // 例如:www.example.com
// 获取主域名(不包含子域名)
const domain = window.location.hostname.split('.').slice(-2).join('.');
console.log(domain); // 例如:example.com
// 获取包含端口号的完整域名
const hostWithPort = window.location.host;
console.log(hostWithPort); // 例如:www.example.com:8080
对于同源策略下的域名获取,可以使用:
const domain = document.domain;
console.log(domain); // 返回当前文档的域名
如果需要从任意URL中提取域名,可以使用正则表达式:
function getDomainFromUrl(url) {
const matches = url.match(/^https?:\/\/([^/?#]+)(?:[\/?#]|$)/i);
return matches && matches[1];
}
const domain = getDomainFromUrl('https://www.example.com/path');
console.log(domain); // www.example.com
对于本地开发环境(localhost)或IP地址访问的情况:
const hostname = window.location.hostname;
if(hostname === 'localhost' || hostname.match(/^\d+\.\d+\.\d+\.\d+$/)) {
console.log('当前为本地环境或IP访问');
} else {
console.log('当前域名为:' + hostname);
}
window.location时要注意浏览器的同源策略限制www前缀需要根据具体需求处理通过以上方法,您可以轻松地在JavaScript中获取和处理域名信息。根据具体需求选择合适的方法,确保代码的兼容性和安全性。