用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版本中,这种格式已经被使用.并 ...
随机推荐
- JavaScript作用域那些事
作用域 (1).作用域也叫执行环境(execution context)是JavaScript中一个重要的概念.执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为.在JavaScript ...
- Oracle处理XML字段时遇到的ORA-31013: XPATH 表达式无效问题
select extractValue(ed.info_id, '/Root/ExpandProfile/PhoneNumber') as phone, extractValue(ed.info_id ...
- Codeforces Round #441 (Div. 2, by Moscow Team Olympiad) A. Trip For Meal
http://codeforces.com/contest/876/problem/A 题意: 一个人一天要吃n次蜂蜜,他有3个朋友,他第一次总是在一个固定的朋友家吃蜂蜜,如果说没有吃到n次,那么他就 ...
- append()/extend()/insert()/remove()/del/pop()/slice列表分片
member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88] member.append('字符串')#在列表结尾处增加字符串 memb ...
- Lintcode375 Clone Binary Tree solution 题解
[题目描述] For the given binary tree, return a deep copy of it. 深度复制一个二叉树,给定一个二叉树,返回一个他的克隆品. [题目链接] www. ...
- MySQL-分组查询(GROUP BY)及二次筛选(HAVING)
为了测试GROUP BY 语句,我们创建两张表,并往表中添加数据 -- 创建部门表 CREATE TABLE IF NOT EXISTS department( id TINYINT UNSIGNED ...
- vue-cli的使用
1.安装node https://nodejs.org/en/download/ 2.webpack安装[我选全局安装] 全局安装 npm install --global webpack 本地安装 ...
- phantomjs 开发爬虫框架
函数 page.childframescount page.childframesname page.close page.currentframename page.deletelater page ...
- [LeetCode] Strange Printer 奇怪的打印机
There is a strange printer with the following two special requirements: The printer can only print a ...
- [LeetCode] IPO 上市
Suppose LeetCode will start its IPO soon. In order to sell a good price of its shares to Venture Cap ...