Skip to content

Commit b17e953

Browse files
committed
- Enhancement: support double-quoted bracket notation
1 parent a037ff6 commit b17e953

12 files changed

+23
-15
lines changed

CHANGES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## ?
44

5+
- Enhancement: support double-quoted bracket notation
56
- npm: Update devDeps.
67

78
## 5.0.7 (2021-04-12)

badges/tests-badge.svg

Lines changed: 1 addition & 1 deletion
Loading

dist/index-browser-esm.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -963,11 +963,11 @@ JSONPath.toPathArray = function (expr) {
963963
.replace(/['\[](\??\((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?\))['\]]/g, function ($0, $1) {
964964
return '[#' + (subx.push($1) - 1) + ']';
965965
}) // Escape periods and tildes within properties
966-
.replace(/\['((?:(?!['\]])[\s\S])*)'\]/g, function ($0, prop) {
966+
.replace(/\[["']((?:(?!['\]])[\s\S])*)["']\]/g, function ($0, prop) {
967967
return "['" + prop.replace(/\./g, '%@%').replace(/~/g, '%%@@%%') + "']";
968968
}) // Properties operator
969969
.replace(/~/g, ';~;') // Split by property boundaries
970-
.replace(/'?\.'?(?!(?:(?!\[)[\s\S])*\])|\['?/g, ';') // Reinsert periods within properties
970+
.replace(/["']?\.["']?(?!(?:(?!\[)[\s\S])*\])|\[["']?/g, ';') // Reinsert periods within properties
971971
.replace(/%@%/g, '.') // Reinsert tildes within properties
972972
.replace(/%%@@%%/g, '~') // Parent
973973
.replace(/(?:;)?(\^+)(?:;)?/g, function ($0, ups) {

dist/index-browser-esm.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index-browser-esm.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index-browser-umd.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -969,11 +969,11 @@
969969
.replace(/['\[](\??\((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?\))['\]]/g, function ($0, $1) {
970970
return '[#' + (subx.push($1) - 1) + ']';
971971
}) // Escape periods and tildes within properties
972-
.replace(/\['((?:(?!['\]])[\s\S])*)'\]/g, function ($0, prop) {
972+
.replace(/\[["']((?:(?!['\]])[\s\S])*)["']\]/g, function ($0, prop) {
973973
return "['" + prop.replace(/\./g, '%@%').replace(/~/g, '%%@@%%') + "']";
974974
}) // Properties operator
975975
.replace(/~/g, ';~;') // Split by property boundaries
976-
.replace(/'?\.'?(?!(?:(?!\[)[\s\S])*\])|\['?/g, ';') // Reinsert periods within properties
976+
.replace(/["']?\.["']?(?!(?:(?!\[)[\s\S])*\])|\[["']?/g, ';') // Reinsert periods within properties
977977
.replace(/%@%/g, '.') // Reinsert tildes within properties
978978
.replace(/%%@@%%/g, '~') // Parent
979979
.replace(/(?:;)?(\^+)(?:;)?/g, function ($0, ups) {

dist/index-browser-umd.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index-browser-umd.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index-node-cjs.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -710,11 +710,11 @@ JSONPath.toPathArray = function (expr) {
710710
.replace(/[['](\??\(.*?\))[\]']/gu, function ($0, $1) {
711711
return '[#' + (subx.push($1) - 1) + ']';
712712
}) // Escape periods and tildes within properties
713-
.replace(/\['([^'\]]*)'\]/gu, function ($0, prop) {
713+
.replace(/\[['"]([^'\]]*)['"]\]/gu, function ($0, prop) {
714714
return "['" + prop.replace(/\./gu, '%@%').replace(/~/gu, '%%@@%%') + "']";
715715
}) // Properties operator
716716
.replace(/~/gu, ';~;') // Split by property boundaries
717-
.replace(/'?\.'?(?![^[]*\])|\['?/gu, ';') // Reinsert periods within properties
717+
.replace(/['"]?\.['"]?(?![^[]*\])|\[['"]?/gu, ';') // Reinsert periods within properties
718718
.replace(/%@%/gu, '.') // Reinsert tildes within properties
719719
.replace(/%%@@%%/gu, '~') // Parent
720720
.replace(/(?:;)?(\^+)(?:;)?/gu, function ($0, ups) {

dist/index-node-esm.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -702,11 +702,11 @@ JSONPath.toPathArray = function (expr) {
702702
.replace(/[['](\??\(.*?\))[\]']/gu, function ($0, $1) {
703703
return '[#' + (subx.push($1) - 1) + ']';
704704
}) // Escape periods and tildes within properties
705-
.replace(/\['([^'\]]*)'\]/gu, function ($0, prop) {
705+
.replace(/\[['"]([^'\]]*)['"]\]/gu, function ($0, prop) {
706706
return "['" + prop.replace(/\./gu, '%@%').replace(/~/gu, '%%@@%%') + "']";
707707
}) // Properties operator
708708
.replace(/~/gu, ';~;') // Split by property boundaries
709-
.replace(/'?\.'?(?![^[]*\])|\['?/gu, ';') // Reinsert periods within properties
709+
.replace(/['"]?\.['"]?(?![^[]*\])|\[['"]?/gu, ';') // Reinsert periods within properties
710710
.replace(/%@%/gu, '.') // Reinsert tildes within properties
711711
.replace(/%%@@%%/gu, '~') // Parent
712712
.replace(/(?:;)?(\^+)(?:;)?/gu, function ($0, ups) {

0 commit comments

Comments
 (0)