Skip to content

Commit 25a541d

Browse files
committed
JSON: Fixed issues with properties and strings + added tests. Fix #1025
1 parent 5916430 commit 25a541d

File tree

7 files changed

+110
-5
lines changed

7 files changed

+110
-5
lines changed

components/prism-json.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
Prism.languages.json = {
2-
'property': /".*?"(?=\s*:)/ig,
3-
'string': /"(?!:)(\\?[^"])*?"(?!:)/g,
4-
'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/g,
2+
'property': /"(?:\\.|[^|"])*"(?=\s*:)/ig,
3+
'string': /"(?!:)(?:\\.|[^|"])*"(?!:)/g,
4+
'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee][+-]?\d+)?)\b/g,
55
'punctuation': /[{}[\]);,]/g,
66
'operator': /:/g,
77
'boolean': /\b(true|false)\b/gi,
8-
'null': /\bnull\b/gi,
8+
'null': /\bnull\b/gi
99
};
1010

1111
Prism.languages.jsonp = Prism.languages.json;

components/prism-json.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
true
2+
false
3+
4+
----------------------------------------------------
5+
6+
[
7+
["boolean", "true"],
8+
["boolean", "false"]
9+
]
10+
11+
----------------------------------------------------
12+
13+
Checks for booleans.
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
null
2+
3+
----------------------------------------------------
4+
5+
[
6+
["null", "null"]
7+
]
8+
9+
----------------------------------------------------
10+
11+
Checks for null.
+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
0
2+
123
3+
3.14159
4+
5.0e8
5+
0.2E+2
6+
47e-5
7+
8+
----------------------------------------------------
9+
10+
[
11+
["number", "0"],
12+
["number", "123"],
13+
["number", "3.14159"],
14+
["number", "5.0e8"],
15+
["number", "0.2E+2"],
16+
["number", "47e-5"]
17+
]
18+
19+
----------------------------------------------------
20+
21+
Checks for numbers.
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{"foo\"bar\"baz":1,"foo":2}
2+
{
3+
"foo": 1,
4+
"b\"ar": 2
5+
}
6+
7+
----------------------------------------------------
8+
9+
[
10+
["punctuation", "{"],
11+
["property", "\"foo\\\"bar\\\"baz\""],
12+
["operator", ":"],
13+
["number", "1"],
14+
["punctuation", ","],
15+
["property", "\"foo\""],
16+
["operator", ":"],
17+
["number", "2"],
18+
["punctuation", "}"],
19+
20+
["punctuation", "{"],
21+
["property", "\"foo\""],
22+
["operator", ":"],
23+
["number", "1"],
24+
["punctuation", ","],
25+
["property", "\"b\\\"ar\""],
26+
["operator", ":"],
27+
["number", "2"],
28+
["punctuation", "}"]
29+
]
30+
31+
----------------------------------------------------
32+
33+
Checks for features.
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
""
2+
"foo"
3+
"foo\"bar\"baz"
4+
"\u2642\\ "
5+
{"foo":"bar","baz":"\""}
6+
7+
----------------------------------------------------
8+
9+
[
10+
["string", "\"\""],
11+
["string", "\"foo\""],
12+
["string", "\"foo\\\"bar\\\"baz\""],
13+
["string", "\"\\u2642\\\\ \""],
14+
["punctuation", "{"],
15+
["property", "\"foo\""],
16+
["operator", ":"],
17+
["string", "\"bar\""],
18+
["punctuation", ","],
19+
["property", "\"baz\""],
20+
["operator", ":"],
21+
["string", "\"\\\"\""],
22+
["punctuation", "}"]
23+
]
24+
25+
----------------------------------------------------
26+
27+
Checks for strings.

0 commit comments

Comments
 (0)