@@ -5,14 +5,15 @@ var extractJSON = require('./extract-json');
55var TOKEN = ( Math . random ( ) + 1 ) . toString ( 36 ) . slice ( 2 , 7 ) ;
66var WRAP_START = "<wrap_" + TOKEN + ">" ;
77var WRAP_END = "</wrap_" + TOKEN + ">" ;
8- var NUM_REGEX = / ^ - ? \d + \. ? [ \d e E ] * $ / g;
8+ var NUM_REGEX = / ^ - ? \d + \. ? \d * ( [ e E ] \+ ) ? \d * $ / g;
9+ var ESCAPED_REGEX = "(-?\\d+\\.?\\d*([eE]\\+)?\\d*)"
910
1011var WRAP_REGEX = new RegExp (
11- "^" + WRAP_START + "(-?\\d+\\.?[\\deE]*)" + WRAP_END + "$" , "g"
12+ "^" + WRAP_START + ESCAPED_REGEX + WRAP_END + "$" , "g"
1213) ;
1314
1415var REPLACE_WRAP_REGEX = new RegExp (
15- "\"" + WRAP_START + "(-?\\d+\\.?[\\deE]*)" + WRAP_END + "\"" , "g"
16+ "\"" + WRAP_START + ESCAPED_REGEX + WRAP_END + "\"" , "g"
1617) ;
1718
1819function contentExtractor ( pre , options ) {
@@ -119,6 +120,7 @@ function wrapNumbers(text) {
119120function 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}
0 commit comments