1 | var memoizeCapped = require('./_memoizeCapped');
|
2 |
|
3 |
|
4 | var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
|
5 |
|
6 |
|
7 | var reEscapeChar = /\\(\\)?/g;
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 | var stringToPath = memoizeCapped(function(string) {
|
17 | var result = [];
|
18 | if (string.charCodeAt(0) === 46 ) {
|
19 | result.push('');
|
20 | }
|
21 | string.replace(rePropName, function(match, number, quote, subString) {
|
22 | result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
|
23 | });
|
24 | return result;
|
25 | });
|
26 |
|
27 | module.exports = stringToPath;
|