zoukankan      html  css  js  c++  java
  • js获取URL里的参数

    第一种 通过正则获取URL中指定的参数

    /** 
     * 获取指定的URL参数值 
     * URL:http://www.xxx.com/index?name=123
     * 参数:param URL参数 
     * 调用方法:getParam("name") 
     * 返回值:123
     * alert(getParam('date'));
     */ 
    function getParam(name) {  
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");  
      //search,查询?后面的参数,并匹配正则
        var r = location.search.substr(1).match(reg);  
      if (r != null) return decodeURI(decodeURI(r[2])); 
    }

    第二种 既可以获取URL中全部参数,也可以获取单个参数

    /** 
     * js获取url参数值
    * 思路,通过location的search获取url中问号后面的值,字符串过滤掉问号,再通过split方法分割参数集合、循环赋值、匹配对应的参数,最后返回值 * URL:http://www.xxx.com/index?name=123 * 参数:param URL参数 * 调用方法:getUrlParams("name") * 返回值:123 * alert(getUrlParams('date'));
    */ function getUrlParams(name) { // 不传name返回所有值,否则返回对应值 var url = window.location.search; if (url.indexOf('?') == 1) { return false; } url = url.substr(1); url = url.split('&'); var name = name || ''; var nameres; // 获取全部参数及其值 for(var i=0;i<url.length;i++) { var info = url[i].split('='); var obj = {}; obj[info[0]] = decodeURI(info[1]); url[i] = obj; } // 如果传入一个参数名称,就匹配其值 if (name) { for(var i=0;i<url.length;i++) { for (const key in url[i]) { if (key == name) { nameres = url[i][key]; } } } } else { nameres = url; } // 返回结果 return nameres; }
    const url = 'http://www.abc.com/test.php?id=1&from=index';
    var res = getUrlParams();
    var res1 = getUrlParams('id');
    console.log(res); //  [{id: "1"}, {from: "index"}]
    console.log(res1); // 1

    第三种 获取URL中的参数名及参数值的集合

    /**
     * [获取URL中的参数名及参数值的集合]
     * 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=小明
     * @param {[string]} urlStr [当该参数不为空的时候,则解析该url中的参数集合]
     * @return {[string]}       [参数集合]
     */
    function GetRequest(urlStr) {
        if (typeof urlStr == "undefined") {
            var url = decodeURI(location.search); //获取url中"?"符后的字符串
        } else {
            var url = "?" + urlStr.split("?")[1];
        }
        var theRequest = new Object();
        if (url.indexOf("?") != -1) {
            var str = url.substr(1);
            strs = str.split("&");
            for (var i = 0; i < strs.length; i++) {
                theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
            }
        }
        return theRequest;
    }
     var parms_1 = GetRequest();
    2 console.log(parms_1); // {"uid":"admin","rid":"1","fid":"2","name":"小明"}
    3 console.log(parms_1['name']); // '小明'
    4 var parms_2 = GetRequest('http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=小明');
    5 console.log(parms_2); // {"uid":"admin","rid":"1","fid":"2","name":"小明"}
    6 console.log(parms_2['name']); // '小明'

    第四种 通过参数名获取url中的参数值

    /**
     * [通过参数名获取url中的参数值]
     * 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=小明
     * @param  {[string]} queryName [参数名]
     * @return {[string]}           [参数值]
     */
    function GetQueryValue(queryName) {
        var query = decodeURI(window.location.search.substring(1));
        var vars = query.split("&");
        for (var i = 0; i < vars.length; i++) {
            var pair = vars[i].split("=");
            if (pair[0] == queryName) { return pair[1]; }
        }
        return null;
    }
    1 var queryVal=GetQueryValue('name');
    2 console.log(queryVal);// 小明
  • 相关阅读:
    搭建NLP相关的python环境
    win10 系统更新后系统第三方软件无法切换微软拼音输入中文
    NLP文本清理时常用的python小函数
    python 复制
    #论文阅读# Universial language model fine-tuning for text classification
    conda 里的 jupyter
    #论文阅读#attention is all you need
    关于多类别分类任务
    大白话AOP
    搭建JavaEE项目是遇到的几个问题
  • 原文地址:https://www.cnblogs.com/niuben/p/12144196.html
Copyright © 2011-2022 走看看