json-schema-validator icon indicating copy to clipboard operation
json-schema-validator copied to clipboard

Please revert fix from #815 (pattern validation)

Open kool79 opened this issue 2 years ago • 3 comments

Please revert fix made in scope of #815. This fix was deployed based on incorrect assumption that java works incorrectly with regexp. But actually issue is not in java. Issue (reported in #814) was caused by incorrect regexp which author uses us json schema.

STR: GIVEN: user (in schema) defines regexp as: ^red|banana$ (starts with 'red' OR ends with 'banana') to pass any strings like: "red", "banana", "red apple", "green banana", "red oval apple"

But the #815 fix will will change regexp to ^(red|banana)$ which will pass ONLY "red" or "banana"

For more details please see my comment to the code https://github.com/networknt/json-schema-validator/pull/815/files#diff-776968543c85221a4907857a99fb117ab32872c5f0c020a717c11fe8162ef310R12-R24

kool79 avatar Oct 11 '23 12:10 kool79

Alternative tool for visualization: https://regexper.com/#%5Ered%7Cbanana%24 scr_2023_10_11T15_39_37 scr_2023_10_11T15_39_56

kool79 avatar Oct 11 '23 12:10 kool79

@fdutton What do you think? Thanks.

stevehu avatar Oct 11 '23 23:10 stevehu

I started looking into this, and the topic is quite a rabbit hole, both in terms of regex matching behavior and invalidate test cases. I tried my best at cleaning things up in #888. @kool79 @fdutton reviews very welcome!

Stephan202 avatar Nov 03 '23 07:11 Stephan202