javascript中escape解决过滤URL传值问题

escape解决过滤URL传值问题在利用ajax传值的时候,遇到特殊符号过滤问题,特殊符号测试

XML/HTML代码01.特殊符号测试哈:~!@#$&%^*()<>,你好吗?<script>alert("hello world");</script> 
因为特殊字符里面有一个&符号,会被当作与data类型传多个传时的连接符号&一样,所以其后面的字符串会被当作参数值来传递,

解决方法

使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,

解决方法如下(另类解决办法):

JavaScript代码

 代码如下 复制代码
var tradition_content = tradition_content.replace("&",escape('&'));//tradition_content

要转换的字符串 
如要转换所有& 

 代码如下 复制代码

var REPand = /&/g; 
var tradition_content = tradition_content.replace(REPand ,escape('&'));

//tradition_content要转换的字符串

时间: 2024-07-29 17:22:08

javascript中escape解决过滤URL传值问题的相关文章

Javascript中的几种URL编码方法比较_javascript技巧

javascript中存在几种对URL字符串进行编码的方法:escape(),encodeURI(),以及encodeURIComponent().这几种编码所起的作用各不相同. escape() 方法:     采用ISO Latin字符集对指定的字符串进行编码.所有的空格符.标点符号.特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字).比如,空格符对应的编码是%20. 不会被此方法编码的字符: @ * / + encodeUR

在JavaScript中获取请求的URL参数[正则]_javascript技巧

第一种方法:,代码比较专业 推荐 复制代码 代码如下: <script> function GetLocationParam(param){ var request = { QueryString : function(val) { var uri = window.location.search; var re = new RegExp("" +val+ "=([^&?]*)", "ig"); return ((uri.ma

在JavaScript中获取请求的URL参数_javascript技巧

当然我们可以在后台中获取参数的值,然后在前台js代码中获取变量的值,具体做法请参考我的这篇文章:JavaScript获取后台C#变量以及调用后台方法. 其实我们也可以直接在js中获取请求的参数的值,通过使用window.location.search可以获取到当前URL的?号开始的字符串,如前面的链接获取到的search为?id=001.再对获取的字符串进行处理,就可以获取到参数的值了. 复制代码 代码如下: function getUrlParam(name) { var reg = new

在JavaScript中如何解决用execCommand(_javascript技巧

本解决方案仅适应asp.net mvc 开发环境,其他环境仅供参考. 问题描述:在开发中遇到这样的需求,保存页面,通常使用JavaScript的saveAs进行保存,各浏览器对saveAs支持,见下表. 代码一:初始保存的代码,只有IE6,7,8支持. function CmdSave() { var OW = window.open('', "_blank", ""); var DD = new Date(); OW.document.open(); var co

javascript模仿php $_get 获取url传值2种方法

例子  代码如下 复制代码 <script> var $_GET = new Object(); var _Rep = document.location.search.replace(/(\?|&)([\w\d_]+)=([^&]+)/g, "_GET['$2']='$3';$"); eval('$'+unescape(_Rep.substr(0,_Rep.length-1))); for(i in $_GET) document.write(i+'=&g

在PHP中实现Javascript的escape()函数代码_php技巧

这里,一般都需要预先将正常的字符串编码成 JavaScript unescape() 函数能够解译的格式,以 PHP 为例,可以使用以下函数实现 Javascript 中 escape() 函数相同的功能: 复制代码 代码如下: <?php function escapeToHex($string, $encoding = UTF-8) { $return = ; for ($x = 0; $x < mb_strlen($string, $encoding); $x ++) { $str =

Python中还原JavaScript的escape函数编码后字符串的方法_python

遇到一个问题需要用Python把JavaScript中escape的中文给还原,但找了大半天,也没有找到答案,只好自己深入研究解决方案. 我们先来看在js中escape一段文字的编码 复制代码 代码如下: a = escape('这是一串文字'); alert(a); 输出: 复制代码 代码如下: %u8FD9%u662F%u4E00%u4E32%u6587%u5B57 咋一看,就感觉有点类似json格式,我们来看看标准的json格式编码同样的汉子"这是一串文字" 复制代码 代码如下:

js中escape对应的C#解码函数 UrlDecode_基础知识

js中escape对应的C#解码函数 System.Web.HttpUtility.UrlDecode(s) //注意编码 需要注意的几点: 1.HttpUtility.UrlEncode,HttpUtility.UrlDecode是静态方法,而Server.UrlEncode,Server.UrlDecode是实例方法. 2.Server是HttpServerUtility类的实例,是System.Web.UI.Page的属性. 3.用HttpUtility.UrlEncode编码后的字符串和

JavaScript中URL编码函数代码_javascript技巧

以下是对变量值的URL编码总结 : 建议用encodeURIComponent() , GET 和POST方式都可以发送过去 . JavaScript中存在几种对URL字符串进行编码的方法:escape(),encodeURI(),以及encodeURIComponent().这几种编码所起的作用各不相同. escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码.所有的空格符.标点符号.特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集