00001 var memoizeCapped = require('./_memoizeCapped'); 00002 00004 var reLeadingDot = /^\./, 00005 rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; 00006 00008 var reEscapeChar = /\\(\\)?/g; 00009 00017 var stringToPath = memoizeCapped(function(string) { 00018 var result = []; 00019 if (reLeadingDot.test(string)) { 00020 result.push(''); 00021 } 00022 string.replace(rePropName, function(match, number, quote, string) { 00023 result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); 00024 }); 00025 return result; 00026 }); 00027 00028 module.exports = stringToPath;