在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编码中的一个常见约定。