手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >node.js中的querystring.unescape方法使用说明
node.js中的querystring.unescape方法使用说明
摘要:方法说明:该方法使可用来重写querystring.parse语法:复制代码代码如下:querystring.unescape接收参数:无源...

方法说明:

该方法使可用来重写 querystring.parse

语法:

复制代码 代码如下:

querystring.unescape

接收参数:

源码:

复制代码 代码如下:

// a safe fast alternative to decodeURIComponent

QueryString.unescapeBuffer = function(s, decodeSpaces) {

var out = new Buffer(s.length);

var state = 'CHAR'; // states: CHAR, HEX0, HEX1

var n, m, hexchar;

for (var inIndex = 0, outIndex = 0; inIndex <= s.length; inIndex++) {

var c = s.charCodeAt(inIndex);

switch (state) {

case 'CHAR':

switch (c) {

case charCode('%'):

n = 0;

m = 0;

state = 'HEX0';

break;

case charCode('+'):

if (decodeSpaces) c = charCode(' ');

// pass thru

default:

out[outIndex++] = c;

break;

}

break;

case 'HEX0':

state = 'HEX1';

hexchar = c;

if (charCode('0') <= c && c <= charCode('9')) {

n = c - charCode('0');

} else if (charCode('a') <= c && c <= charCode('f')) {

n = c - charCode('a') + 10;

} else if (charCode('A') <= c && c <= charCode('F')) {

n = c - charCode('A') + 10;

} else {

out[outIndex++] = charCode('%');

out[outIndex++] = c;

state = 'CHAR';

break;

}

break;

case 'HEX1':

state = 'CHAR';

if (charCode('0') <= c && c <= charCode('9')) {

m = c - charCode('0');

} else if (charCode('a') <= c && c <= charCode('f')) {

m = c - charCode('a') + 10;

} else if (charCode('A') <= c && c <= charCode('F')) {

m = c - charCode('A') + 10;

} else {

out[outIndex++] = charCode('%');

out[outIndex++] = hexchar;

out[outIndex++] = c;

break;

}

out[outIndex++] = 16 * n + m;

break;

}

}

// TODO support returning arbitrary buffers.

return out.slice(0, outIndex - 1);

};

【node.js中的querystring.unescape方法使用说明】相关文章:

JavaScript中的sub()方法的使用介绍

JavaScript中的unshift()方法的使用

JS中的Replace方法使用经验分享

JavaScript中的small()方法使用详解

JavaScript中的substr()方法使用详解

JavaScript中的lastIndexOf()方法使用详解

简介JavaScript中toTimeString()方法的使用

JavaScript中的setUTCDate()方法使用详解

JavaScript中toString()方法的使用详解

在JavaScript中处理时间之setMinutes()方法的使用

精品推荐
分类导航