在 JavaScript 中,你可以使用以下方法根据 key 值获取 URL 中的参数值:

1. 使用 URLSearchParams(现代浏览器支持):
// 假设 URL 为:https://example.com/?name=John&age=30

const urlParams = new URLSearchParams(window.location.search);
const name = urlParams.get('name');
const age = urlParams.get('age');

console.log(name); // 输出 "John"
console.log(age);  // 输出 "30"

window.location.search 包含 URL 中 ? 后面的查询字符串部分。URLSearchParams 对象允许你轻松地获取和操作查询参数。

2. 使用正则表达式:
// 假设 URL 为:https://example.com/?name=John&age=30

function getQueryParam(key) {
  const regex = new RegExp('[?&]' + key + '=([^&]+)');
  const match = window.location.search.match(regex);

  return match ? decodeURIComponent(match[1]) : null;
}

const name = getQueryParam('name');
const age = getQueryParam('age');

console.log(name); // 输出 "John"
console.log(age);  // 输出 "30"

这个方法使用正则表达式从 window.location.search 中匹配指定 key 的值。请注意,这种方法对于处理多个参数或复杂 URL 可能不够灵活。

3. 使用自定义函数:
// 假设 URL 为:https://example.com/?name=John&age=30

function getQueryParam(key) {
  const queryParams = window.location.search.substr(1).split('&');
  for (const param of queryParams) {
    const [paramKey, paramValue] = param.split('=');
    if (paramKey === key) {
      return decodeURIComponent(paramValue);
    }
  }
  return null;
}

const name = getQueryParam('name');
const age = getQueryParam('age');

console.log(name); // 输出 "John"
console.log(age);  // 输出 "30"

这个方法将查询参数拆分成键值对数组,然后遍历数组查找指定的 key。

选择哪种方法取决于你的需求和项目兼容性要求。如果你的项目支持现代浏览器,推荐使用 URLSearchParams。如果需要兼容旧浏览器,使用正则表达式或自定义函数是可行的方法。


转载请注明出处:http://www.zyzy.cn/article/detail/4569/JSON