当前位置:首页 > 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中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…

js实现的游戏

js实现的游戏

JavaScript 游戏开发基础 JavaScript 是开发网页游戏的流行选择,因其无需插件即可在浏览器中运行。以下是一些关键技术和资源: HTML5 Canvas Canvas 提供了绘制图形…