1、先看看location对象

2、其中的search属性就获取当前URL的查询部分(问号?之后的部分)

3、改造location.search

比如当前URL为:https://www.hao123.com/?name=leaf&age=12,获取age的值

  1. location.search.substring(1).split('&')[1].split('=')[1]。
  2. 当然可以用循环获取所有想要字段的值

4、不用location.search,封装一个param函数,解析出给你url的参数;

  1. //如定的url:
  2. 'http://www.baidu.com/?user=leaf&age=10&id=123&id=456&city=%E5%8C%97%E4%BA%AC&d&student';
  3.  
  4. //解析出:
  5. //要求:
  6. // 重复出现的 key 要组装成数组,能被转成数字的就转成数字类型
  7. // 解析出中文
  8. // 未指定值的 key 约定值为 true
  9. {
  10. user: 'anonymous',
  11. age:10,
  12. id: [123, 456],
  13. city: '北京',
  14. student: true,
  15. }

  

//demo

  1. function parseURL(str){
  2. //如果参数不是对象。返回空对象
  3. if(typeof str!='string'){
  4. return {}
  5. }
  6.  
  7. var paramObj = {},//保存最终输出的对象
  8. _str = str.substr(str.indexOf('?')+1);
  9.  
  10. //解析中文
  11. paraArr = decodeURI(_str).split("&");
  12.  
  13. var tmp , key, value, newValue;
  14. for(var i=0, len=paraArr.length; i<len;i++){
  15. tmp = paraArr[i].split("=");
  16. key = tmp[0];
  17. value = tmp[1]||true;
  18.  
  19. //处理数字'100'=>100
  20. if(typeof value === 'string' && isNaN(Number(value)) === false){
  21. value = Number(value);
  22. }
  23.  
  24. //如果key没有出现过(可能是0 或者false)
  25. if(typeof paramObj[key] === "undefined"){
  26. paramObj[key] = value;
  27. }else{
  28. newValue = Array.isArray(paramObj[key]) ? paramObj[key] : [paramObj[key]];
  29. newValue.push(value);
  30. paramObj[key] = newValue;
  31. }
  32.  
  33. }
  34.  
  35. return paramObj;
  36.  
  37. }

//结果

 5、简单小巧的正则的方法

  1. function getQuerystring(name){
  2. let reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
  3. let arg = window.location.search.substr(1).match(reg);
  4. if(arg!=null){
  5. return unescape(r[2]);
  6. }else{
  7. return null;
  8. }
  9. }

  

 

如URL:www.hao123.com/dist/redPacket/inviteShare.html?code=B197FD&from=singlemessage

  1. getQuerystring('code') //B197FD

 

  

用JavaScript按一定格式解析出URL 串中所有的参数的更多相关文章

  1. java解析出url请求的路径和参数键值对类 - 转

    import java.util.HashMap; import java.util.Map; public class CRequest { /** * 解析出url请求的路径,包括页面 * @pa ...

  2. python模块之HTMLParser解析出URL链接

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser解析出URL链接 #http://www.cnblogs.com/mf ...

  3. URL重写中的中文参数问题

    在做搜索功能时,需要输入关键字,如果搜索出来的结果很多,又需要分页.这里用URL重写技术(即href="?keyword=关键字&page=分页数"),就涉及到了传递中文关 ...

  4. js获取URL地址中的GET参数

    var $_GET = (function(){ var url = window.document.location.href.toString(); var u = url.split(" ...

  5. URL 链接中的 UTM参数何定义?

    浏览网页或者点击广告的时候,细心的朋友们或者有关注浏览器地址栏的 URL 链接时,一定会发现 utm_source 或者与其类似的链接,那么链接中的这个UTM参数有什么用呢? UTM 为“Urchin ...

  6. URL地址中传递数组参数的方法

    示例:http://127.0.0.1/text/index.php?links[]=ddddd&links[]=fffff var_dump($_GET); array(1) {     [ ...

  7. 使用JavaScript获取url(request)中的参数

    这次是使用JavaScript来获取url(request)中的参数 在日常页面编写的过程中为了方便操作在<script>中通过使用window.location.href="要 ...

  8. js获取url(request)中的参数

    index.htm?参数1=数值1&参数2=数值2&参数3=数据3&参数4=数值4&...... 静态html文件js读取url参数,根据获取html的参数值控制htm ...

  9. ipv6地址在URL中的表达方式,如何在URL地址中包含ipv6地址

    摘要 本文档定义了在WWW浏览器的URL中执行的文本IPv6地址的格式.在包括Microsoft的IE,Mozilla和Lynx等几个已经被广泛安装使用的浏览器的IPv6版本中,这种格式已经被使用.并 ...

随机推荐

  1. [UWP]针对UWP程序多语言支持的总结,含RTL

    UWP 对 Globalization and localization 的支持非常好,可以非常容易地实现应用程序本地化. 所谓本地化,表现最为直观的就是UI上文字和布局方式了,针对文字,提供不同的语 ...

  2. 【JavaScript中typeof、toString、instanceof、constructor与in】

    JavaScript中typeof.toString.instanceof.constructor与in JavaScript 是一种弱类型或者说动态语言.这意味着你不用提前声明变量的类型,在程序运行 ...

  3. SpringCloud的Bus(一)消息中间件的概念和用途

    一.概念与定义 1.Message Broker Message Broker是一种消息验证.消息转换.消息路由的架构模式,用于如: 消息路由到一个或多个目的地 消息转化为其他的表现方式 执行消息的聚 ...

  4. GIT入门笔记(2)- 典型的工作模式

      分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库.   下图是经典的git开发过程.   Git的功能特性:   ...

  5. python 保障系统(一)

    python  保障系统 from django.shortcuts import render,redirect,HttpResponse from app01 import models from ...

  6. Centos:如何查找安装的jdk的目录

    使用$JAVA_HOME的话能定位JDK的安装路径的前提是配置了环境变量$JAVA_HOME,否则如下所示,根本定位不到JDK的安装路径. 正确的方式是通过 which java: [tt@vddd ...

  7. 使用 vue-i18n 切换中英文

    兼容性: 支持 Vue.js 2.x 以上版本 安装方法:(此处只演示 npm) npm install vue-i18n 使用方法: 1.在 main.js 中引入 vue-i18n (前提是要先引 ...

  8. Python将excel文件从xls转换为xlsx

    本文使用场景:将一个xls格式Excel文件转换为xlsx文件格式.接下来将一步一步演示该操作.你也可以对代码进行修改使其适用于你所需的场景. 安装Python3 首先需要安装Python,我这里安装 ...

  9. [LeetCode] Partition to K Equal Sum Subsets 分割K个等和的子集

    Given an array of integers nums and a positive integer k, find whether it's possible to divide this ...

  10. C语言中关于运算符优先级别

    在一一个表达式中可能有多个不同的运算符结合起来,由于运算符的优先级别不一样,可能会形成得到的结果不同. 优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级. 对于相同的优先级, ...