Skip to content

Commit 6d34834

Browse files
author
Túlio Ornelas
committed
Fix float point numbers (closes #167 #111)
1 parent 3e92246 commit 6d34834

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

extension/src/json-viewer/content-extractor.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@ var extractJSON = require('./extract-json');
55
var TOKEN = (Math.random() + 1).toString(36).slice(2, 7);
66
var WRAP_START = "<wrap_" + TOKEN + ">";
77
var WRAP_END = "</wrap_" + TOKEN +">";
8-
var NUM_REGEX = /^-?\d+\.?[\deE]*$/g;
8+
var NUM_REGEX = /^-?\d+\.?\d*([eE]\+)?\d*$/g;
9+
var ESCAPED_REGEX = "(-?\\d+\\.?\\d*([eE]\\+)?\\d*)"
910

1011
var WRAP_REGEX = new RegExp(
11-
"^" + WRAP_START + "(-?\\d+\\.?[\\deE]*)" + WRAP_END + "$", "g"
12+
"^" + WRAP_START + ESCAPED_REGEX + WRAP_END + "$", "g"
1213
);
1314

1415
var REPLACE_WRAP_REGEX = new RegExp(
15-
"\"" + WRAP_START + "(-?\\d+\\.?[\\deE]*)" + WRAP_END + "\"", "g"
16+
"\"" + WRAP_START + ESCAPED_REGEX + WRAP_END + "\"", "g"
1617
);
1718

1819
function contentExtractor(pre, options) {
@@ -119,6 +120,7 @@ function wrapNumbers(text) {
119120
function isCharInNumber(char, previous) {
120121
return ('0' <= char && char <= '9') ||
121122
('0' <= previous && previous <= '9' && (char == 'e' || char == 'E')) ||
123+
(('e' == previous || 'E' == previous) && char == '+') ||
122124
char == '.' ||
123125
char == '-';
124126
}
@@ -127,6 +129,7 @@ function isCharInString(char, previous) {
127129
return ('0' > char || char > '9') &&
128130
char != 'e' &&
129131
char != 'E' &&
132+
char != '+' &&
130133
char != '.' &&
131134
char != '-';
132135
}

tests/test.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"correct_value:80402000000790837": 80402000000790837,
33
"number_string": "53061",
44
"float": 122.80,
5+
"big_float": 1.5034464E+9,
56
"boolean": true,
67
"another_boolean": false,
78
"float_with_exponent": 8.4127988E8,

0 commit comments

Comments
 (0)