js获取url参数值的几种方式
方法一:采用正则表达式获取地址栏参数 (代码简洁,重点正则)
function getQueryString(name) { let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); let r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); }; return null; }
- 调用方法:
let 参数1 = GetQueryString("参数名1"));
方法二:split拆分法 (代码较复杂,较易理解)
function GetRequest() { const url = location.search; //获取url中"?"符后的字串 let theRequest = new Object(); if (url.indexOf("?") != -1) { let str = url.substr(1); strs = str.split("&"); for(let i = 0; i < strs.length; i ++) { theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]); } } return theRequest; }
- 调用方法:
let Request = new Object();
Request = GetRequest();
var 参数1,参数2 ...;
参数1 = Request['参数1'];
参数2 = Request['参数2'];
参数... = Request['参数...'];
方法三:split拆分法(易于理解,代码中规)
function getQueryVariable(variable){ let query = window.location.search.substring(1); let vars = query.split("&"); for (let i=0;i<vars.length;i++) { let pair = vars[i].split("="); if(pair[0] == variable){return pair[1];} } return(false); }
- 调用方法:
let 参数1 = getQueryVariable("参数名1");
补充URL知识:
示例url = http://www.jianshu.com/search?q=js&page=1&type=note
- 1、window.location.href(设置或获取整个 URL 为字符串)
console.log(window.location.href)
打印结果:http://www.jianshu.com/search?q=123&page=1&type=note
- 2、window.location.protocol(设置或获取 URL 的协议部分)
console.log(window.location.protocol)
打印结果:http:
- 3、window.location.host(设置或获取 URL 的主机部分)
console.log(window.location.host)
打印结果:www.jianshu.com
- 4、window.location.port(设置或获取与 URL 关联的端口号码)
console.log(window.location.port)
打印结果:空字符(如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符)
- 5、window.location.pathname(设置或获取与 URL 的路径部分(就是文件地址))
console.log(window.location.pathname)
打印结果:/search
- 6、window.location.search(设置或获取 href 属性中跟在问号后面的部分)
console.log(window.location.search)
打印结果:?q=123&page=1&type=note
PS:获得查询(参数)部分,除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值。 - 7、window.location.hash(设置或获取 href 属性中在井号“#”后面的分段)
console.log(window.location.hash)
打印结果:空字符(因为url中没有)
以下JS函数用于获取url参数:
function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="); if(pair[0] == variable){return pair[1];} } return(false); }
使用实例
url 实例:
http://www.runoob.com/index.php?id=1&image=awesome.jpg
调用 getQueryVariable("id") 返回 1。
调用 getQueryVariable("image") 返回 "awesome.jpg"。
转载于:https://www.cnblogs.com/volodya/p/11212847.html
js获取url参数值的几种方式相关推荐
- js获取url参数值的方法总结
js获取url参数值的方法总结 1.方式一:通过字符串截取的方式获取参数值: 2.方式二:通过正则获取到参数值: 1.方式一:通过字符串截取的方式获取参数值: 1).函数一:获取URL中的参数名及 ...
- php解析url并得到url中的参数及获取url参数的四种方式
本文给大家介绍php解析url并得到url中的参数及获取url参数的四种方式,涉及到将字符串参数变为数组,将参数变为字符串的相关知识,本文代码简单易懂,感兴趣的朋友一起看看吧 下面一段代码是php解析 ...
- js获取 url 参数值的方法总结
今天小编碰到一个朋友问这么一个问题,怎么在一个页面中获取另外一个页面url传过来的参数呢?最初一开始很本能的想到了用 split("?"),这样一步步的分解出需要的参数.但是想了一 ...
- JS获取JSON字符串的几种方式
之前有人问了一个问题就是关于js获取json数据value值的几种方式,所以今天把一些比较常见的给总结了一下,希望能帮助到大家 <script>var obj = {id:1,name:' ...
- js获取url参数值的方法总结(亲测)
1.方式一:通过字符串截取的方式获取参数值: 1).函数一:获取URL中的参数名及参数值的集合 /*** [获取URL中的参数名及参数值的集合]* 示例URL:http://htmlJsTest/ge ...
- js获取url参数值
2019独角兽企业重金招聘Python工程师标准>>> 方法一:正则分析法 function getQueryString(name) { var reg = new RegE ...
- 通过原生js获取dom元素的九种方式
获取dom元素 <body><!-- <div id="box">我是一个DIV</div><p class="item& ...
- php获取url传递的参数,php解析url并得到url中的参数及获取url参数的四种方式
下面一段代码是php解析url并得到url中的参数,代码如下所示:<?php $url = "http://www.baidu.com/index.php?m=content& ...
- yy神曲url解析php_php解析url并得到url中的参数及获取url参数的四种方式
下面一段代码是php解析url并得到url中的参数,代码如下所示: $url = 'http://www.baidu.com/index.php?m=content&c=index&a ...
- JS获取URL参数的4种方法总结
1.字符串 split 方法(推荐) let URL = "http://www.baidu.com?name=张三&age=25&sex=男&wife=小红&quo ...
最新文章
- Swift使用iconfont图标
- Linux0.11 创建进程的过程分析--fork函数的使用
- basename函数使用
- 用 Celery 实现邮件推送系统
- springboot单元测试通过MockMvc类调用controller接口
- CROC-MBTU 2012, Elimination Round (ACM-ICPC) 总结
- 一个打印螺旋数的程序
- 图像变形功能的应用: 在线修整发型
- HDU 6342 Expression in Memories(模拟)多校题解
- [转]Java集合类: Set、List、Map、Queue使用场景梳理
- php 如何区分0和false,php中怎么区别false与0
- 计算机系统_数据表示实验
- 做微商的朋友们都想知道代购怎么在闲鱼上引流?
- 2018网易校招移动安全工程师笔试题
- STM32寄存器编程思路 - 从51到stm32开发入门,真干货
- I2C+E2PROM再回顾ing~
- SSD中,SATA、m2、PCIE和NVME各有什么意义
- 达尔优键盘的上下左右变成了ASDW
- 基于LoRa技术实现MESH组网的LoRaMESH技术简介
- 尚鼎峰:抖音播放量不够高?如何制作吸睛封面?
热门文章
- List集合之LinkedList
- python 字符串编码 str和unicode 区别以及相互转化 decode('utf-8') encode('utf-8')
- idea 错误: -source 1.6 中不支持 diamond 运算符的解决办法
- mybatis13--2级缓存
- 你知道哪些苹果自家应用采用 Swift 语言编写吗?
- java中的Map每次只能put一次,写段增强的put,可以一次put很多次
- B/S、C/S架构与视频对话技术
- CAS配置数据库进行用户验证
- poj2406(kmp循环节)
- SEO搜索引擎优化二十八条经验建议