js操作url的代码

7 篇文章 0 订阅
//=============================================URL操作 Start=============================================
var StringToAscii = function(str) { return str.charCodeAt(0).toString(16); }
var AsciiToString = function(asccode) { return String.fromCharCode(asccode); }
/* Url编码 */
function SetUrlEncode(unzipStr) {
    var zipstr = "";
    var strSpecial = "!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
    var tt = "";
    for (var i = 0; i < unzipStr.length; i++) {
        var chr = unzipStr.charAt(i);
        var c = StringToAscii(chr);
        tt += chr + ":" + c + "n";
        if (parseInt("0x" + c) > 0x7f) {
            zipstr += encodeURI(unzipStr.substr(i, 1));
        } else {
            if (chr == " ")
                zipstr += "+";
            else if (strSpecial.indexOf(chr) != -1)
                zipstr += "%" + c.toString(16);
            else
                zipstr += chr;
        }
    }
    return zipstr;
}
/* Url解码 */
function SetUrlDecode(zipStr) {
    var uzipStr = "";
    for (var i = 0; i < zipStr.length; i++) {
        var chr = zipStr.charAt(i);
        if (chr == "+") {
            uzipStr += " ";
        } else if (chr == "%") {
            var asc = zipStr.substring(i + 1, i + 3);
            if (parseInt("0x" + asc) > 0x7f) {
                uzipStr += decodeURI("%" + asc.toString() + zipStr.substring(i + 3, i + 9).toString());
                i += 8;
            } else {
                uzipStr += AsciiToString(parseInt("0x" + asc));
                i += 2;
            }
        } else {
            uzipStr += chr;
        }
    }
    return uzipStr;
}
 
//在当前url地址后面添加时间戳,构造新增的url地址
function SetUrlRefresh(url) {
    if (url.indexOf("?") > 0)
        return url + "&t=" + (new Date().getTime());
    else
        return url + "?t=" + (new Date().getTime());
}
 
/// <summary>
/// 构造一个地址栏参数对象,把获取的参数存入此对象中,类似数组
/// </summary>
///<remarks>
///如:http://localhost:4838/Joan_Web/test.aspx?fds=153&fdaf=1mlk
///则会得到:
///         fds="153"
///         fdaf="1mlk"
///         getallparameter="fds=153&fdaf=1mlk"
///</remarks>
function UrlSearch() { //重复时只取最后一个
    var name, value;
    var str = window.location.href; //取得整个地址栏
    var num = str.indexOf("?")
    str = str.substr(num + 1); //取得所有参数
    var arr = str.split("&"); //各个参数放到数组里
    for (var i = 0; i < arr.length; i++) {
        num = arr[i].indexOf("=");
        if (num > 0) {
            name = arr[i].substring(0, num);
            value = arr[i].substr(num + 1);
            this[name] = value;
        }
    }
    this["getallparameter"] = str;
}
 
var RQ = new UrlSearch(); //实例化
 
//获取url参数名值对,如:&str=123
function GetUrlParamAndValue(parameter) {
    eval("var temp=RQ." + parameter); //用eval去执行字符串js
    if ((typeof (temp) == "string") && (typeof (temp) != null)) {
        return "&" + parameter + "=" + temp.replace(/(^\s*)|(\s*$)/g, "");
    }
    else
        return "";
}
 
//获得url地址栏对应参数名的参数值
function GetUrlQueryValueByName(pName) {
    var reg = new RegExp("(^|&)" + pName + "=([^&]*)(&|$)", "i");
    var r = window.location.search.substr(1).match(reg);
    if (r != null)
        return unescape(r[2]);
    return "";
}
/*
function GetUrlParameter(pname) {
    var query = location.search.substring(1);
    var qq = "";
    params = query.split("&");
    if (params.length > 0) {
        for (var n in params) {
            var pairs = params[n].split("=");
            if (pairs[0] == pname) {
                qq = pairs[1];
                break;
            }
        }
    }
    return qq;
}
*/
 
//获取锚点
function GetUrlAnchor() {
    var str = window.location.href;
    var num = str.indexOf("#")
    str = str.substr(num + 1);
    return str;
}
 
/*获取当前页页码*/
function GetThisPageIndex() {
    var r = /^[1-9][0-9]*$/;
    if (GetUrlQueryValueByName('pageindex') == '') return 1;
    if (r.test(GetUrlQueryValueByName('pageindex')))
        return parseInt(GetUrlQueryValueByName('pageindex'));
    else
        return 1;
}
//获取URL主机头
function GetUrlHost() {
    if (document.URL.substr(0, 7) == 'http://')
        return 'http://' + window.location.host;
    else
        return 'https://' + window.location.host;
}
//=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值