URLSearchParams:has() 方法

注意:此功能在 Web Workers 中可用。

has() 方法是 URLSearchParams 接口的方法,它返回一个布尔值,指示指定的参数是否在搜索参数中。

使用参数名称和可选值来匹配参数。如果仅指定参数名称,则如果查询字符串中的任何参数与该名称匹配,则该方法将返回 true,否则返回 false。如果同时指定参数名称和值,则如果参数同时匹配名称和值,则该方法将返回 true

语法

js
has(name)
has(name, value)

参数

name

要匹配的参数的名称。

value

要匹配的参数的值,以及给定的名称。

返回值

布尔值。

示例

检查具有指定名称的参数

此示例演示如何检查查询字符串中是否存在任何具有特定名称的参数。

js
const url = new URL("https://example.com?foo=1&bar=2&foo=3");
const params = new URLSearchParams(url.search);

// has() returns true if the parameter is in the query string
console.log(`bar?:\t${params.has("bar")}`);
console.log(`bark?:\t${params.has("bark")}`);
console.log(`foo?:\t${params.has("foo")}`);

以下日志显示参数 barbarkfoo 是否存在于查询字符串中。

bar?:  true
bark?: false
foo?:  true

检查具有指定名称和值的参数

此示例演示如何检查查询字符串中是否存在与特定名称和值都匹配的参数。

js
const url = new URL("https://example.com?foo=1&bar=2&foo=3");
const params = new URLSearchParams(url.search);

// has() returns true if a parameter with the matching name and value is in the query string
console.log(`bar=1?:\t${params.has("bar", "1")}`);
console.log(`bar=2?:\t${params.has("bar", "2")}`);
console.log(`foo=4?:\t${params.has("foo", "4")}`);

上面只有第二个值应该是 true,因为只有名称为 bar 且值为 2 的参数匹配。

bar=1?: false
bar=2?: true
foo=4?: false

如果您的浏览器不支持 value 选项,则该方法将根据名称进行匹配,并且所有结果都应该是 true

规范

规范
URL 标准
# dom-urlsearchparams-has

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅