当前位置:首页 > JavaScript

js实现url

2026-03-15 11:29:27JavaScript

URL 解析与操作

在 JavaScript 中,可以使用 URL 对象或 URLSearchParams 来解析和操作 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.hostname);   // 域名 (example.com)
console.log(url.pathname);   // 路径 (/path)
console.log(url.search);     // 查询参数 (?name=value)
console.log(url.hash);       // 哈希 (#hash)

修改 URL 参数

const url = new URL('https://example.com');
url.searchParams.set('key', 'value'); // 添加参数
url.searchParams.delete('key');       // 删除参数
console.log(url.href); // https://example.com/?key=value

解析查询参数

const params = new URLSearchParams('?a=1&b=2');
console.log(params.get('a')); // 1
console.log(params.toString()); // a=1&b=2

URL 编码与解码

编码

使用 encodeURIComponent 对 URL 参数值编码:

const param = 'hello world';
const encoded = encodeURIComponent(param); // hello%20world

解码

使用 decodeURIComponent 解码:

js实现url

const decoded = decodeURIComponent('hello%20world'); // hello world

动态生成 URL

拼接 URL

const baseUrl = 'https://example.com';
const path = '/api/data';
const query = { id: 123, sort: 'asc' };

const url = new URL(path, baseUrl);
Object.entries(query).forEach(([key, value]) => {
  url.searchParams.set(key, value);
});

console.log(url.href); // https://example.com/api/data?id=123&sort=asc

检查 URL 有效性

function isValidUrl(string) {
  try {
    new URL(string);
    return true;
  } catch {
    return false;
  }
}

console.log(isValidUrl('https://example.com')); // true
console.log(isValidUrl('invalid'));            // false

相对路径转绝对路径

const base = 'https://example.com/a/b';
const relative = '../c';

const absoluteUrl = new URL(relative, base).href;
console.log(absoluteUrl); // https://example.com/a/c

以上方法覆盖了 URL 解析、修改、编码解码和动态生成等常见场景。

标签: jsurl
分享给朋友:

相关文章

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…

js实现导航菜单

js实现导航菜单

使用HTML和CSS创建基础结构 导航菜单的基础结构通常由HTML的无序列表(<ul>)和列表项(<li>)组成,每个列表项包含一个链接(<a>)。CSS用于样式化…