`

KeyEscapeUtils

 
阅读更多

KeyEscapeUtils模块

'use strict';

function escape(key) {
  var escapeRegex = /[=:]/g;
  var escaperLookup = {
    '=': '=0',
    ':': '=2'
  };
  var escapedString = ('' + key).replace(escapeRegex, function (match) {
    return escaperLookup[match];
  });

  return '$' + escapedString;
}

function unescape(key) {
  var unescapeRegex = /(=0|=2)/g;
  var unescaperLookup = {
    '=0': '=',
    '=2': ':'
  };
  var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);

  return ('' + keySubstring).replace(unescapeRegex, function (match) {
    return unescaperLookup[match];
  });
}

var KeyEscapeUtils = {
  escape: escape,
  unescape: unescape
};

// 供traverseAllChildren模块使用,处理ReactNode集合的key属性
module.exports = KeyEscapeUtils;

 。

 

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics