URLSearchParams 可以让参数不区分大小写吗?

gos*_*kan 1 javascript query-parameters reactjs

可以URLSearchParams以某种方式找到参数而不区分大小写吗?例如在查询中我有?someParam=paramValue,那么什么时候我 URLSearchParams.get("someparam")会找到paramValue

T.J*_*der 8

URLSearchParams键区分大小写。我在MDN 文档规范中没有看到任何建议来建议控制该行为的标志或替代方法等。

但是,将新URLSearchParams对象中的所有名称转换为小写非常简单:

const params = new URLSearchParams(
    "?someParam=paramValue"
);
// Doesn't work
console.log(params.get("someparam"));
// Create the new one
const newParams = new URLSearchParams();
for (const [name, value] of params) {
    newParams.append(name.toLowerCase(), value);
}
// Works
console.log(newParams.get("someparam"));
Run Code Online (Sandbox Code Playgroud)

  • 这是一个很好的方法。我可能会将其压缩为 `const newParams = new URLSearchParams([...params].map(([key, value]) => [key.toLowerCase(), value]));` (3认同)