js(JavaScript) 解析url地址
学思创
604
在 JavaScript 中解析 URL 地址通常使用内置的 URL
对象。这个对象提供了一种简单而强大的方法来解析、操作和构建 URL。以下是一些常见的用法示例:
首先,你需要创建一个 URL
对象。你可以传入一个字符串形式的 URL 来初始化这个对象。
const urlStr = 'https://xsc.sxcrun.com/userarticle/detail/id/249';
const url = new URL(urlStr);
URL
对象提供了许多属性,可以方便地访问 URL 的各个部分:
href
: 完整的 URL 字符串。protocol
: 协议部分(如 https:
)。hostname
: 主机名(如 example.com
)。port
: 端口号(如 8080
)。pathname
: 路径名(如 /pathname/
)。search
: 查询字符串(包括 ?
,如 ?search=test
)。searchParams
: 一个 URLSearchParams
对象,用于处理查询参数。hash
: 哈希部分(包括 #
,如 #hash
)。console.log(url.href); // 'https://xsc.sxcrun.com/userarticle/detail/id/249'
console.log(url.protocol); // 'https:'
console.log(url.hostname); // 'xsc.sxcrun.com'
console.log(url.port); // ''
console.log(url.pathname); // '/userarticle/detail/id/249'
console.log(url.search); // ''
console.log(url.hash); // ''
URLSearchParams
对象处理查询参数URLSearchParams
对象提供了许多方法来操作查询参数:
get(name)
: 获取指定名称的第一个参数值。set(name, value)
: 设置指定名称的参数值。append(name, value)
: 添加一个新的参数值(不覆盖已有值)。delete(name)
: 删除指定名称的参数。has(name)
: 检查是否存在指定名称的参数。keys()
: 返回一个迭代器,包含所有参数的名称。values()
: 返回一个迭代器,包含所有参数的值。entries()
: 返回一个迭代器,包含所有参数的 [name, value]
对。const params = url.searchParams;
console.log(params.get('id')); // ''
params.append('newParam', 'newValue');
console.log(url.toString()); // 'https://xsc.sxcrun.com/userarticle/detail/id/249?newParam=newValue'
params.set('search', 'updatedValue');
console.log(url.toString()); // 'https://xsc.sxcrun.com/userarticle/detail/id/249?search=updatedValue&newParam=newValue'
params.delete('newParam');
console.log(url.toString()); // 'https://xsc.sxcrun.com/userarticle/detail/id/249?search=updatedValue'
你可以修改 URL
对象的属性,然后重新构建 URL。
url.pathname = '/home/search';
url.searchParams.set('key', 'swoole');
console.log(url.toString()); // 'https://xsc.sxcrun.com/home/search?key=swoole'
通过这些方法,你可以轻松地在 JavaScript 中解析和操作 URL。