js获得参数的getParameter使用示例


在JavaScript中,直接通过函数`getParameter`来获取URL参数并不是一个内置的功能,但你可以很容易地通过编写一个简单的函数来实现这一功能。以下是一个简单的`getParameter`函数的实现示例,这个函数可以从当前URL的查询字符串中获取指定名称的参数值。


function getParameter(name, url = window.location.href) {
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

// 使用示例
console.log(getParameter('search')); // 假设当前URL为 http://example.com/?search=hello&page=1,将输出 "hello"
console.log(getParameter('page'));   // 将输出 "1"
console.log(getParameter('notfound')); // 如果参数不存在,将输出 null

这个函数首先定义了一个`name`参数,它是你想从URL查询字符串中获取的参数名。可选的`url`参数允许你指定一个特定的URL,但如果不提供,则默认使用当前窗口的URL(`window.location.href`)。

函数内部,`name`被处理以适配正则表达式的特殊字符,然后创建一个正则表达式来匹配查询字符串中指定名称的参数。如果找到匹配项,它将返回解码后的参数值(如果存在);否则,它将返回`null`。如果参数存在但没有值(例如`&search=`),它将返回一个空字符串。

请注意,这个函数假定URL编码是适当的,并且使用了`decodeURIComponent`来解码参数值。此外,它使用`+`作为空格的编码,这是URL编码中的一个常见约定。