一、uri编码解码
1、编解码一个字符串(淘汰)
ecmascript v3 反对使用该方法,应使用 decodeuri() 和 decodeuricomponent() 替代它。
1、escape():编码一个字符串
escape()除了 ascii 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码。
语法:escape(value);
var str = "javascript 你好"; var str1 = escape(str); document.write(str1); //输出:javascript%20%u4f60%u597d
2、unecape():解码一个由escape()函数编码的字符串
var str = "javascript 你好"; var str1 = escape(str); document.write(str1); //javascript%20%u4f60%u597d var str2 = unescape(str1); alert(str2); //弹出 javascript你好
2、编解码一个uri
1、encodeuri():转义一个uri中的字符
encodeuri() 用于编码整个uri,因为uri中的合法字符都不会被编码转换。
语法:encodeuri(uri) 这个在编码不同的ajax请求时,解决中文乱码问题经常用到。
var str1 = "你好javascript"; var str2 = encodeuri(str1); document.write(str2); //输出:%e4%bd%a0%e5%a5%bdjavascript
2、decodeuri():解码一个uri中的字符
语法:decodeuri(uri)
var str1 = "你好javascript"; var str2 = encodeuri(str1); document.write(str2); //输出:%e4%bd%a0%e5%a5%bdjavascript var str3 = decodeuri(str2); document.write(" " + str3) //输出:你好javascript
3、编解码一个uri组件
1、encodeuricomponent():转义uri组件中的字符
encodeuricomponent方法在编码单个uricomponent(指请求参数)应当是最常用的,它可以讲参数中的中文、特殊字符进行转义,而不会影响整个url。
var str1 = "你好javascript"; var str2 = encodeuricomponent(str1); document.write(str2); //输出:%e4%bd%a0%e5%a5%bdjavascript
2、decodeuricomponent():解码一个uri组件中的字符
var str1 = "你好javascript"; var str2 = encodeuricomponent(str1); document.write(str2); //输出:%e4%bd%a0%e5%a5%bdjavascript var str3 = decodeuricomponent(str2); document.write(" " + str3) //输出:你好javascript
二、html编码解码
1、html编码解码函数
编码函数:
function htmlencode(str) { var s = ""; if (str.length == 0) return ""; s = str.replace(/&/g, "&"); s = s.replace(/</g, "<"); s = s.replace(/>/g, ">"); s = s.replace(/'/g, "'"); s = s.replace(/"/g, """); return s; } ;
解码函数:
function htmldecode(str){ var s = ""; if (str.length == 0) return ""; s = str.replace(/&/g, "&"); s = s.replace(/</g, "<"); s = s.replace(/>/g, ">"); s = s.replace(/'/g, "'"); s = s.replace(/"/g, "\""); return s; }
2、用浏览器内部转换器实现
1.实现html转码
htmlencode:function (html){ //1.首先动态创建一个容器标签元素,如div var temp = document.createelement ("div"); //2.然后将要转换的字符串设置为这个元素的innertext(ie支持)或者textcontent(火狐,google支持) (temp.textcontent != undefined ) ? (temp.textcontent = html) : (temp.innertext = html); //3.最后返回这个元素的innerhtml,即得到经过html编码转换的字符串了 var output = temp.innerhtml; temp = null; return output; }
2、实现html解码
htmldecode:function (text){ //1.首先动态创建一个容器标签元素,如div var temp = document.createelement("div"); //2.然后将要转换的字符串设置为这个元素的innerhtml(ie,火狐,google都支持) temp.innerhtml = text; //3.最后返回这个元素的innertext(ie支持)或者textcontent(火狐,google支持),即得到经过html解码的字符串了。 var output = temp.innertext || temp.textcontent; temp = null; return output; },
到此这篇关于javascript实现uri编码解码的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。