| [ |
| { |
| "description": "ECMA 262 regex non-compliance", |
| "schema": { |
| "format": "regex" |
| }, |
| "tests": [ |
| { |
| "description": "ECMA 262 has no support for \\Z anchor from .NET", |
| "data": "^\\S(|(.|\\n)*\\S)\\Z", |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "ECMA 262 regex $ does not match trailing newline", |
| "schema": { |
| "type": "string", |
| "pattern": "^abc$" |
| }, |
| "tests": [ |
| { |
| "description": "matches in Python, but should not in jsonschema", |
| "data": "abc\n", |
| "valid": false |
| }, |
| { |
| "description": "should match", |
| "data": "abc", |
| "valid": true |
| } |
| ] |
| }, |
| { |
| "description": "ECMA 262 regex converts \\t to horizontal tab", |
| "schema": { |
| "type": "string", |
| "pattern": "^\\t$" |
| }, |
| "tests": [ |
| { |
| "description": "does not match", |
| "data": "\\t", |
| "valid": false |
| }, |
| { |
| "description": "matches", |
| "data": "\u0009", |
| "valid": true |
| } |
| ] |
| }, |
| { |
| "description": "ECMA 262 regex escapes control codes with \\c and upper letter", |
| "schema": { |
| "type": "string", |
| "pattern": "^\\cC$" |
| }, |
| "tests": [ |
| { |
| "description": "does not match", |
| "data": "\\cC", |
| "valid": false |
| }, |
| { |
| "description": "matches", |
| "data": "\u0003", |
| "valid": true |
| } |
| ] |
| }, |
| { |
| "description": "ECMA 262 regex escapes control codes with \\c and lower letter", |
| "schema": { |
| "type": "string", |
| "pattern": "^\\cc$" |
| }, |
| "tests": [ |
| { |
| "description": "does not match", |
| "data": "\\cc", |
| "valid": false |
| }, |
| { |
| "description": "matches", |
| "data": "\u0003", |
| "valid": true |
| } |
| ] |
| }, |
| { |
| "description": "ECMA 262 \\d matches ascii digits only", |
| "schema": { |
| "type": "string", |
| "pattern": "^\\d$" |
| }, |
| "tests": [ |
| { |
| "description": "ASCII zero matches", |
| "data": "0", |
| "valid": true |
| }, |
| { |
| "description": "NKO DIGIT ZERO does not match (unlike e.g. Python)", |
| "data": "߀", |
| "valid": false |
| }, |
| { |
| "description": "NKO DIGIT ZERO (as \\u escape) does not match", |
| "data": "\u07c0", |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "ECMA 262 \\D matches everything but ascii digits", |
| "schema": { |
| "type": "string", |
| "pattern": "^\\D$" |
| }, |
| "tests": [ |
| { |
| "description": "ASCII zero does not match", |
| "data": "0", |
| "valid": false |
| }, |
| { |
| "description": "NKO DIGIT ZERO matches (unlike e.g. Python)", |
| "data": "߀", |
| "valid": true |
| }, |
| { |
| "description": "NKO DIGIT ZERO (as \\u escape) matches", |
| "data": "\u07c0", |
| "valid": true |
| } |
| ] |
| }, |
| { |
| "description": "ECMA 262 \\w matches ascii letters only", |
| "schema": { |
| "type": "string", |
| "pattern": "^\\w$" |
| }, |
| "tests": [ |
| { |
| "description": "ASCII 'a' matches", |
| "data": "a", |
| "valid": true |
| }, |
| { |
| "description": "latin-1 e-acute does not match (unlike e.g. Python)", |
| "data": "é", |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "ECMA 262 \\w matches everything but ascii letters", |
| "schema": { |
| "type": "string", |
| "pattern": "^\\W$" |
| }, |
| "tests": [ |
| { |
| "description": "ASCII 'a' does not match", |
| "data": "a", |
| "valid": false |
| }, |
| { |
| "description": "latin-1 e-acute matches (unlike e.g. Python)", |
| "data": "é", |
| "valid": true |
| } |
| ] |
| }, |
| { |
| "description": "ECMA 262 \\s matches ascii whitespace only", |
| "schema": { |
| "type": "string", |
| "pattern": "^\\s$" |
| }, |
| "tests": [ |
| { |
| "description": "ASCII space matches", |
| "data": " ", |
| "valid": true |
| }, |
| { |
| "description": "latin-1 non-breaking-space does not match (unlike e.g. Python)", |
| "data": "\u00a0", |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "ECMA 262 \\S matches everything but ascii whitespace", |
| "schema": { |
| "type": "string", |
| "pattern": "^\\S$" |
| }, |
| "tests": [ |
| { |
| "description": "ASCII space does not match", |
| "data": " ", |
| "valid": false |
| }, |
| { |
| "description": "latin-1 non-breaking-space matches (unlike e.g. Python)", |
| "data": "\u00a0", |
| "valid": true |
| } |
| ] |
| } |
| ] |