diff --git a/projects/plugins/boost/app/assets/src/js/features/page-cache/meta/meta.tsx b/projects/plugins/boost/app/assets/src/js/features/page-cache/meta/meta.tsx index 258295749a697..6c4f2bacdb7b0 100644 --- a/projects/plugins/boost/app/assets/src/js/features/page-cache/meta/meta.tsx +++ b/projects/plugins/boost/app/assets/src/js/features/page-cache/meta/meta.tsx @@ -157,6 +157,24 @@ const BypassPatterns = ( { // @todo - add proper link. const exclusionsLink = 'https://jetpack.com'; + const validateInputValue = ( value: string ) => { + setInputValue( value ); + setInputInvalid( ! validatePatterns( value ) ); + } + + const validatePatterns = ( value: string ) => { + const lines = value.split( '\n' ).map( line => line.trim() ).filter( line => line.trim() !== '' ); + + // check if it's a valid regex + try { + lines.forEach( line => new RegExp( line ) ); + } catch ( e ) { + return false; + } + + return true; + } + useEffect( () => { setInputValue( patterns ); }, [ patterns ] ); @@ -182,7 +200,7 @@ const BypassPatterns = ( {