用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版本中,这种格式已经被使用.并 ...
随机推荐
- Spring Security入门(1-13)Spring Security的投票机制和投票器
1.三种表决方式,默认是 一票制AffirmativeBased public interface AccessDecisionManager { /** * 通过传递的参数来决定用户是否有访问对应受 ...
- gradle入门(1-1)gradle的概念和使用
一.Gradle是什么 Gradle是一种Java应用构建工具,它采用领域特定语言 Groovy 语法实现配置. 1.Gradle的基本概念 项目:项目的配置 即 build.gradle. 任务:任 ...
- c# 工具类(字符串和时间,文件)
using System; using System.IO; using System.Text.RegularExpressions; using System.Windows.Browser; n ...
- Delaunay三角化算法
参考:<平面域中的Delaunay三角算法>
- c++中的类之构造函数
一.构造函数的缘由 本文我们主要来讲解c++中类的构造函数,其中涉及了深拷贝和浅拷贝的问题,这也是在面试笔试中经常会碰到的问题.如果您是第一次听说构造函数,可能会觉得这个名字有点高大上,而它却和实际中 ...
- 深入浅出Lua虚拟机
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:郑小辉 | 腾讯 游戏客户端开发高级工程师 写在前面:本文所有的文字都是我手工一个一个敲的,以及本文后面分享的Demo代码都是我一行一 ...
- 1.3WEB API 默认以json格式返回数据,同时定义时间格式,返回格式
首先我们知道,web api 是可以返回任意类型的,然后在输出的过程中转为(默认的)xml. 但是xml是比较费流量的,而且大多前端都是用json对接,所以我们也只能随大流,把它输出改成json. 不 ...
- url,href,src之间的区别
发现自己居然没把url.href.src关系及使用搞清楚,今天就理一下.主要包括:url.src.href定义以及使用区别. URL(Uniform Resource Locator) 统一资源定位符 ...
- axios介绍与使用说明 axios中文文档
本周在做一个使用vuejs的前端项目,访问后端服务使用axios库,这里对照官方文档,简单记录下,也方便大家参考. Axios 是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node ...
- Spring Cloud学习笔记-008
继承特性 通过上节的示例实践,当使用Spring MVC的注解来绑定服务接口时,几乎完全可以从服务提供方的Controller中依靠复制操作,构建出相应的服务客户端绑定接口.既然存在这么多复制操作,自 ...