JavaScript获取URL参数的安全实现与调用规范

作者:沉舟

时间:2026-10-28

浏览:479

本文介绍使用JavaScript通过正则表达式解析URL查询参数的方法。核心代码利用location.search匹配键值对,并采用decodeURI进行解码以替代已废弃的unescape。文章强调在调用时必须对返回值进行非空及长度判断,防止访问不存在的参数时引发运行时错误,确保代码在无参URL下的稳定性。

文章目录

获取URL参数的核心实现

具体实现代码如下:

/**
获取地址栏参数
 *
* @example GetUrlString('id')
 *
* @desc 调用时加上判断,保证程序不会出错
* var myurl = GetUrlString('id');
* if (myurl != null && myurl.toString().length > 1) {
* alert(GetUrlString("id"));
 *             }
 *
* @param String param 要获取地址栏中的参数名
* @return String Value
* @type String
 *
* @name GetUrlString()
 *
 */
function GetUrlString(param) {
var sValue = location.search.match(new RegExp("[\?\&]" + m + "=([^\&]*)(\&?)", "i"));
return sValue ? decodeURI(sValue[1]) : decodeURI(sValue);
}

安全调用与错误处理规范

在调用该函数时,建议统一添加安全检查逻辑。例如,当URL中不包含指定参数(如直接访问 abc.html)时,直接输出结果可能导致异常。通过预先判断返回值,可避免此类错误。

完整的调用示例代码如下:

window.onload = function() {
var myurl = GetParm("id");
if (myurl != null && myurl.toString().length > 1) {
alert(GetParm("id"));
    }
}

通过上述判断逻辑,可有效避免程序报错。

注意:ECMAScript v3 已从标准中移除 unescape() 函数并反对使用,建议改用 decodeURI() 和 decodeURIComponent() 进行解码。

读者如有疑问,欢迎留言讨论。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章