1、先看看location对象

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

3、改造location.search

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

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

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

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

  

//demo

function parseURL(str){
//如果参数不是对象。返回空对象
if(typeof str!='string'){
return {}
} var paramObj = {},//保存最终输出的对象
_str = str.substr(str.indexOf('?')+1); //解析中文
paraArr = decodeURI(_str).split("&"); var tmp , key, value, newValue;
for(var i=0, len=paraArr.length; i<len;i++){
tmp = paraArr[i].split("=");
key = tmp[0];
value = tmp[1]||true; //处理数字'100'=>100
if(typeof value === 'string' && isNaN(Number(value)) === false){
value = Number(value);
} //如果key没有出现过(可能是0 或者false)
if(typeof paramObj[key] === "undefined"){
paramObj[key] = value;
}else{
newValue = Array.isArray(paramObj[key]) ? paramObj[key] : [paramObj[key]];
newValue.push(value);
paramObj[key] = newValue;
} } return paramObj; }

//结果

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

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

  

 

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

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. tomcat-theory

    (一) java类:applet,servlet,jsp JSP:.jsp-->.java-->(JVM).classJDK:javac,.java-->.classweb:Serv ...

  2. RESTful API 编写指南

    基于一些不错的RESTful开发组件,可以快速的开发出不错的RESTful API,但如果不了解开发规范的.健壮的RESTful API的基本面,即便优秀的RESTful开发组件摆在面前,也无法很好的 ...

  3. 原生JS封装时间运动函数

    /*讲时间运动之前先给大家复习一下运动函数 通常大家都会写运动框架,一个定时器(Timer),一个步长(step 就是每次运动的距离),一个当前位置(current)一个目标位置(target),然后 ...

  4. GIT入门笔记(8)-- 查看历史提交记录/根据版本号回到过去或未来

    在Git中,用HEAD表示当前版本,也就是最新的提交版本, 上一个版本就是HEAD^, 上上一个版本就是HEAD^^, 往上100个版本写100个^比较容易数不过来,所以写成HEAD~100. Git ...

  5. Docker学习笔记 - Docker容器与外部网络的连接

    学习目的: ip_forward 包过滤防护墙 iptables 允许端口映射访问 限制ip访问容器 1.ip_forward 控制系统是否会转发流量 检查linux系统转发是否开启命令:sysctl ...

  6. apigw鉴权分析(1-1)阿里数加 - 鉴权方式分析

    一.访问方式 1.访问阿里云首页 https://www.aliyun.com/?utm_medium=text&utm_source=bdbrand&utm_campaign=bdb ...

  7. 关于阿里巴巴iconfont的使用方法

    iconfont网址:http://www.iconfont.cn/ 说起iconfont,做前端开发的应该知道它的好处,图标库之丰富,只有你想不到的,没有你找不到的,而且轻量高清.用户在iconfo ...

  8. IIFE的形式、原理和常见写法

    immediately invoked function expression 立即调用的函数表达式 出现的形式: 最近做牛客网的JS在线编程,遇到几道考闭包的题目,发现闭包的尾巴那儿经常会出现一对小 ...

  9. UIView圆角设置

    对于UIview的圆角设置最简单的就是layer的两个属性分别是cornerRadius和masksToBounds,但是对于设置其中某一个角为圆角的时候需要使用贝塞尔曲线 UIView *aView ...

  10. SpringMVC(二):RequestMapping修饰类、指定请求方式、请求参数或请求头、支持Ant路径

    @RequestMapping用来映射请求:RequestMapping可以修饰方法外,还可以修饰类 1)SpringMVC使用@RequestMapping注解为控制指定可以处理哪些URL请求: 2 ...