前台js获取url传递参数(后台Request.QueryString接收)
方法
封装
function GetQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return decodeURIComponent(r[2]);
    return null;
}
调用
alert(GetQueryString('UserName'));
说明
建议使用encodeURIComponent、encodeURI,不建议使用escape
关于三中编码函数的区别,原博文 https://blog.csdn.net/letterTiger/article/details/79623991
关于escape,不建议使用的原因,原博文 https://blog.csdn.net/unopenmycode/article/details/78835545
摘抄:
其对编码函数进行了修改,且对原因也进行了说明。
escape()不对“+”编码。但是我们知道,网页在提交表单的时候,如果有空格,则会被转化为+字符。
服务器处理数据的时候,会把+号处理成空格。所以,使用的时候要小心。
encodeURIComponent()
最后一个Javascript编码函数是encodeURIComponent()。
与encodeURI()的区别是,它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。
因此,“; / ? : @ & = + $ , #”,这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码。
至于具体的编码方法,两者是一样。
encodeURIComponent()相比encodeURI()要更加彻底。
为什么优先使用encodeURIComponent而不是escape?
escape方法并不编码字符+。而我们知道,在用户提交的表单字段中,如果有空格,则会被转化为+字符,而服务器解析的时候则会认为+号代表空格。
由于这个缺陷,escape方法并不能正确地处理所有的非ASCII字符,你应当尽量避免使用escape方法,
取而代之,你最好选择 encodeURIComponent()方法。
前台js获取url传递参数(后台Request.QueryString接收)的更多相关文章
- js获取url传递参数(转的,原作不详)
		
这里是一个获取URL带QUESTRING参数的JAVASCRIPT客户端解决方案,相当于asp的request.querystring,PHP的$_GET 函数: <Script languag ...
 - 【转】js获取url传递参数
		
<Script language="javascript">var Request = new Object();Request = GetRequest();var ...
 - js获取url传递参数,js获取url?号后面的参数
		
方法一.正则表达式 function getQueryString(name) { var reg = new RegExp("(^|&)" + name + " ...
 - js获取url传递参数
		
<head> <meta charset="UTF-8"> <title></title> <script type=&quo ...
 - js获取url传递参数的写法
		
获取url地址?后面参数值的写法 正则: function GetQueryString(name) { var reg = new RegExp("(^|&)"+ nam ...
 - js获取url中参数名也参数值
		
要撮利用js获取url中参数名也参数值这个不多见了,但我今天需要这样操作,下面我来给大家介绍一下具体的实例方法. 在已知参数名的情况下,获取参数值,使用正则表达式能很容易做到. js的实现方法如下 ...
 - js获取url的参数和值的N种有效方法
		
js获取url的参数和值的N种有效方法 function getParameterByName(name) { name = name.replace(/[\[]/, "\\\[" ...
 - JS获取url请求参数
		
JS获取url请求参数,代码如下: // 获取url请求参数 function getQueryParams() { var query = location.search.substring(1) ...
 - js获取url传递得参数
		
方法一:正则法 function getQueryString(name) { var reg = new RegExp('(^|&)' + name + '=([^&]*)(& ...
 
随机推荐
- 2020.6.16 night  解题报告
			
2020.6.16 night 解题报告 link 标签(空格分隔): 题解 概率与期望 T1 : Crossing Rivers UVA - 12230 SB题. 很唬人的一个连续期望. 很明显,在 ...
 - 【mq读书笔记】消息消费队列和索引文件的更新
			
ConsumeQueue,IndexFile需要及时更新,否则无法及时被消费,根据消息属性查找消息也会出现较大延迟. mq通过开启一个线程ReputMessageService来准时转发commitL ...
 - mysql主从同步上---主从同步原理
			
1.主从同步机制 1.1 主从同步介绍和优点 在多台数据服务器中,分为主服务器和从服务器.一台主服务器对应多台从服务器. 主服务器只负责写入数据,从服务器只负责同步主服务器的数据,并让外部程序 ...
 - Vite ❤ Electron——基于Vite搭建Electron+Vue3的开发环境【一】
			
背景 目前社区两大Vue+Electron的脚手架:electron-vue和vue-cli-plugin-electron-builder, 都有这样那样的问题,且都还不支持Vue3,然而Vue3已 ...
 - PyQt(Python+Qt)学习随笔:QLineEdit行编辑器功能详解
			
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 QLineEdit部件是一个单行文本编辑器,支持撤消和重做. ...
 - PyQt(Python+Qt)学习随笔:QDockWidget停靠部件的allowedAreas属性
			
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 QDockWidget的allowedAreas属性用于控制停靠部件在 ...
 - 第十四章 web前端开发小白学爬虫
			
老猿从事IT开发快三十年了,接触互联网也很久了,但自己没有做过web前端开发,只知道与前端开发相关的一些基本概念,如B/S架构.html标签.js脚本.css样式.xml解析.cookies.http ...
 - PyQt(Python+Qt)学习随笔:QTableView中数据行高和列宽的调整方法
			
老猿Python博文目录 老猿Python博客地址 一.概述 在QTableView中,除了采取缺省的间隔显示行和列的数据外,还可以通过带调整数据的行高和列宽. 二.列宽调整方法 调整数据行列宽的方法 ...
 - Asp.net core中RedisMQ的简单应用
			
最近一个外部的项目,使用到了消息队列,本来是用rabbitmq实现的,但是由于是部署到别人家的服务器上,想尽量简化一些,项目中本来也要接入了redis缓存,就尝试使用redis来实现简单的消息队列. ...
 - Alpha冲刺——序言篇(任务与计划)
			
Alpha冲刺--序言篇(任务与计划) 1.整个项目预期的任务量 需求规格说明书 架构设计,原型设计,原型改进(给目标用户展现原型,并进一步理解需求) 编码规范完成.平台环境搭建完成.初步架构搭建 队 ...