当前位置:首页 > JavaScript

js实现url

2026-04-07 04:59:46JavaScript

使用 JavaScript 处理 URL

JavaScript 提供了 URLURLSearchParams 对象,可以方便地解析、构造和操作 URL。

解析 URL

const url = new URL('https://example.com/path?name=value#hash');

console.log(url.href);      // 完整 URL
console.log(url.origin);    // 协议 + 域名 + 端口
console.log(url.protocol);  // 协议 (https:)
console.log(url.host);      // 域名 + 端口
console.log(url.hostname);  // 域名
console.log(url.port);      // 端口
console.log(url.pathname);  // 路径 (/path)
console.log(url.search);    // 查询字符串 (?name=value)
console.log(url.hash);      // 哈希 (#hash)

操作查询参数

const url = new URL('https://example.com?foo=bar&baz=qux');

// 获取参数
console.log(url.searchParams.get('foo')); // "bar"

// 设置参数
url.searchParams.set('foo', 'newvalue');

// 添加参数
url.searchParams.append('new', 'param');

// 删除参数
url.searchParams.delete('baz');

// 转换为字符串
console.log(url.toString()); 
// "https://example.com/?foo=newvalue&new=param"

构造 URL

const url = new URL('https://example.com');
url.pathname = '/new/path';
url.searchParams.set('param', 'value');
console.log(url.href); 
// "https://example.com/new/path?param=value"

处理相对 URL

const base = 'https://example.com/base/';
const relative = '../path';
const absolute = new URL(relative, base).href;
console.log(absolute); // "https://example.com/path"

兼容性注意事项

现代浏览器都支持 URLURLSearchParams API。对于旧版浏览器,可能需要使用 polyfill 或手动解析 URL 字符串。

js实现url

手动解析 URL 的正则表达式方法

function parseUrl(url) {
  const pattern = /^(https?:\/\/)?([^\/\?:]+)(:(\d+))?([^?#]*)(\?([^#]*))?(#(.*))?/;
  const matches = url.match(pattern);

  return {
    protocol: matches[1] || '',
    host: matches[2] || '',
    port: matches[4] || '',
    path: matches[5] || '',
    query: matches[7] || '',
    hash: matches[9] || ''
  };
}

标签: jsurl
分享给朋友:

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…