两种方法解决javascript url post 特殊字符转义 + & #
作者:MK
本文主要介绍javascript使用url传值的时候数据丢失的问题,希望对大家有所帮助。
最近在用url 传特殊字符的时候发现数据丢失了。
其实不是丢失,比如 ‘+'它会当成连接字符来处理了。
一、替换成16进制字符,在这列几个常用的转换
+ | 空格 | / | ? | % | & | = | # |
%2B | %20 | %2F | %3F | %25 | %26 | &3D | %23 |
复制代码 代码如下:
var post_Str = apply_name.replace(/\+/g, "%2B");//"+"转义
var post_Str= post_Str.replace(/\&/g, "%26");//"&"
var post_Str= post_Str.replace(/\#/g, "%23");//"#"
var post_Str= post_Str.replace(/\&/g, "%26");//"&"
var post_Str= post_Str.replace(/\#/g, "%23");//"#"
二、如果遇到了其他的特殊字符,可以用下面的方法看一下把它转成啥,直接按照上面的方法写一个就行了
复制代码 代码如下:
alert(encodeURIComponent("-"));//转码,得到结果就OK了吧,下边是解码,这里是用不到的
alert(decodeURIComponent(encodeURIComponent("#")));
alert(decodeURIComponent(encodeURIComponent("#")));