Spaces:
Runtime error
Runtime error
var memoizeCapped = require('./_memoizeCapped'); | |
/** Used to match property names within property paths. */ | |
var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; | |
/** Used to match backslashes in property paths. */ | |
var reEscapeChar = /\\(\\)?/g; | |
/** | |
* Converts `string` to a property path array. | |
* | |
* @private | |
* @param {string} string The string to convert. | |
* @returns {Array} Returns the property path array. | |
*/ | |
var stringToPath = memoizeCapped(function(string) { | |
var result = []; | |
if (string.charCodeAt(0) === 46 /* . */) { | |
result.push(''); | |
} | |
string.replace(rePropName, function(match, number, quote, subString) { | |
result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); | |
}); | |
return result; | |
}); | |
module.exports = stringToPath; | |