获取URL中参数的值

/**
 * 获取URL中参数的值
 *
 * 例子:http://abc.com?action=update&id=987654321789
 * var action = getUrlParam("action"); //返回action的值为"update"
 *
 * @Param: name: 要获取的参数名字
 * @param: _location:可选参数,页面的URL,在弹出窗口中使用
 * @return:返回参数的值
 */
var getUrlParam = function (name, _location) {
    var _location_url = _location || window.location.search; //window.location.searchURL中问号及其后面的内容
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
    var r = _location_url.substr(1).match(reg); //匹配目标参数
    //返回参数值
    if (r != null) return decodeURIComponent(r[2]);
    return null;
};

/**
 *  设置url参数
 *  @param name
 *              参数名称
 *  @param value
 *              参数值
 *  @param _location
 *              可选参数,替换的URL
 *  @returns {XML|*|string|{by}|void}
 */
var changeUrlParam = function (name, value, _location) {
    var url = _location || window.location.href;
    var reg = eval('/(' + name + '=)([^&]*)/gi');
    return url.replace(reg, name + '=' + value);
};

/**
 * 删除url指定名称的参数
 *  @param name
 *              参数名称
 *  @param _location
 *              可选参数,替换的URL
 * @returns {XML|*|string|{by}|void}
 */
var delUrlParam = function (name, _location) {
    var url = _location || window.location.href;
    var reg = eval('/(' + name + '=)([^&]*)/gi');
    return url.replace(reg, "");
};

/**
 * 添加url指定名称的参数
 * @param name
 *      参数名称
 * @param value
 *      参数值
 * @param _location
 *      可选参数,替换的URL
 * @returns {string}
 */
var addUrlParam = function (name, value, _location) {
    var currentUrl = _location || window.location.href;
    if (/\?/g.test(currentUrl)) {
        if (/name=[-\w]{4,25}/g.test(currentUrl)) {
            currentUrl = currentUrl.replace(/name=[-\w]{4,25}/g, name + "=" + value);
        } else {
            currentUrl += "&" + name + "=" + value;
        }
    } else {
        currentUrl += "?" + name + "=" + value;
    }
    return currentUrl;
};

/**
 * 设置histroy状态
 *
 * @param title
 * @param url
 */
var historyPushState = function (title, url) {
    if (history.pushState && isNotBank(title) && isNotBank(url)) {
        document.title = title;
        history.pushState({title: title}, title, url);
    }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值