国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

node.js中的querystring.unescape方法使用說明

2019-11-20 13:46:07
字體:
來源:轉載
供稿:網友

方法說明:

該方法使可用來重寫 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);
};

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 香港 | 龙南县| 城市| 文水县| 乌兰浩特市| 邛崃市| 阜宁县| 新河县| 舒城县| 嘉黎县| 房产| 陈巴尔虎旗| 泰顺县| 南城县| 梅州市| 舞钢市| 华容县| 新泰市| 十堰市| 体育| 曲沃县| 宜君县| 昌吉市| 安庆市| 定边县| 惠安县| 嘉定区| 金乡县| 贵阳市| 合江县| 安陆市| 永修县| 景谷| 武川县| 盐城市| 南和县| 冕宁县| 沂南县| 鄂尔多斯市| 宣恩县| 灵寿县|