用JavaScript按一定格式解析出URL 串中所有的参数
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 串中所有的参数的更多相关文章
- java解析出url请求的路径和参数键值对类 - 转
import java.util.HashMap; import java.util.Map; public class CRequest { /** * 解析出url请求的路径,包括页面 * @pa ...
- python模块之HTMLParser解析出URL链接
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser解析出URL链接 #http://www.cnblogs.com/mf ...
- URL重写中的中文参数问题
在做搜索功能时,需要输入关键字,如果搜索出来的结果很多,又需要分页.这里用URL重写技术(即href="?keyword=关键字&page=分页数"),就涉及到了传递中文关 ...
- js获取URL地址中的GET参数
var $_GET = (function(){ var url = window.document.location.href.toString(); var u = url.split(" ...
- URL 链接中的 UTM参数何定义?
浏览网页或者点击广告的时候,细心的朋友们或者有关注浏览器地址栏的 URL 链接时,一定会发现 utm_source 或者与其类似的链接,那么链接中的这个UTM参数有什么用呢? UTM 为“Urchin ...
- URL地址中传递数组参数的方法
示例:http://127.0.0.1/text/index.php?links[]=ddddd&links[]=fffff var_dump($_GET); array(1) { [ ...
- 使用JavaScript获取url(request)中的参数
这次是使用JavaScript来获取url(request)中的参数 在日常页面编写的过程中为了方便操作在<script>中通过使用window.location.href="要 ...
- js获取url(request)中的参数
index.htm?参数1=数值1&参数2=数值2&参数3=数据3&参数4=数值4&...... 静态html文件js读取url参数,根据获取html的参数值控制htm ...
- ipv6地址在URL中的表达方式,如何在URL地址中包含ipv6地址
摘要 本文档定义了在WWW浏览器的URL中执行的文本IPv6地址的格式.在包括Microsoft的IE,Mozilla和Lynx等几个已经被广泛安装使用的浏览器的IPv6版本中,这种格式已经被使用.并 ...
随机推荐
- 怎样使用下载的bootstrap模板?
核心文件bootstarp.css和bootstarp.js导入到页面,然后看着官网的代码复制进去用就可以了.网上是有不少教程的.实际上就是加class 属性 ,如:http://www.runoob ...
- hadoop2.6.0实践:A03 例子验证
[hadoop@LexiaofeiN1 ~]$ hdfs dfs -ls /output/grep[hadoop@LexiaofeiN1 ~]$ hdfs dfs -rm -R /output/gre ...
- 新概念英语(1-69)The car race
新概念英语(1-69)The car race Which car was the winner in 1995 ? There is car race near our town every ye ...
- yum 安装Apache
1.查看是否安装Apache,命令: rpm -qa httpd 2.yum install httpd ,yum安装Apache 3.chkconfig httpd on s ...
- RTSP连接中断重连的问题
最近在调查的一个问题. 起因是我司的一款数据链产品,15km数字图传,测试时发现视频画面经常会出现马赛克或卡顿. 图传设置了10Mbps速率,而视频码流是4Mbps,按道理不应该出现这种问题. 经过几 ...
- Python入门之PyCharm的快捷键与常用设置和扩展(Mac系统)
1. 快捷键 2 . PyCharm的常用设置和扩展 ------------------------------------------------------------------------- ...
- python/*args和**kwargs
*args和**kwargs #coding=utf8 __author__ = 'Administrator' # 当函数的参数不确定时,可以使用*args和**kwargs.*args没有key值 ...
- CSS3 3D立方体效果
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content=&q ...
- IdentityServer4-介绍大纲(译文)
简介 IdentityServer4是一个基于ASP.NET CORE2使用OAuth2.0协议和OpenID Connect的框架 特性如下: Authentiaction作为一个Service 集 ...
- Python系列之 - 锁(GIL,Lock,Rlock,Event,信号量)
python 的解释器,有很多种,但市场占有率99.9%的都是基于c语言编写的CPython. 在这个解释器里规定了GIL. In CPython, the global interpreter l ...