javascript - 使用 jQuery/Javascript (querystring) 获取查询字符串参数 url 值

标签 javascript jquery url jquery-plugins query-string

有人知道编写 jQuery 扩展来处理查询字符串参数的好方法吗?我基本上想扩展 jQuery 魔法 ($) 函数,这样我就可以做这样的事情:

$('?search').val(); 

这会给我以下 URL 中的值“test”:http://www.example.com/index.php?search=test

我已经在 jQuery 和 Javascript 中看到很多可以执行此操作的函数,但实际上我想扩展 jQuery 以完全按照上面显示的方式工作。我不是在寻找 jQuery 插件,而是在寻找 jQuery 方法的扩展。

最佳答案

经过多年丑陋的字符串解析,有一个更好的方法:URLSearchParams让我们看看如何使用这个新的 API 从位置获取值!

//Assuming URL has "?post=1234&action=edit"

var urlParams = new URLSearchParams(window.location.search);
console.log(urlParams.has('post')); // true
console.log(urlParams.get('action')); // "edit"
console.log(urlParams.getAll('action')); // ["edit"]
console.log(urlParams.toString()); // "?post=1234&action=edit"
console.log(urlParams.append('active', '1')); // "?

post=1234&action=edit&active=1"

更新:不支持 IE

使用来自 an answer below 的这个功能而不是 URLSearchParams

$.urlParam = function (name) {
    var results = new RegExp('[\?&]' + name + '=([^&#]*)')
                      .exec(window.location.search);

    return (results !== null) ? results[1] || 0 : false;
}

console.log($.urlParam('action')); //edit

关于javascript - 使用 jQuery/Javascript (querystring) 获取查询字符串参数 url 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7731778/

相关文章:

validation - URL 验证似乎已损坏

ios - 带有 URL 链接的图像

javascript - 为什么我的js函数不起作用?

javascript - 为什么 fadeIn()、fadeOut()、show(400)、hide(400) 动画在我的情况下不起作用?

javascript - 为 vuejs 组件加载多个部分

javascript - 检查 DIV 相对于浏览器屏幕的位置 - jQuery

jquery - WebForms 中的 fancybox2 不会触发按钮单击

php - 何时使用 URL/session/cookie 变量?

javascript 正则表达式支持带有数字和字母的 UTF8 字符

javascript - 如何在 iphone/ipad 或其他移动设备上禁用某个 javascript?