From 758300ad186060b7f2abcefee09da47cb9a3d3d1 Mon Sep 17 00:00:00 2001 From: KanniShashankh Date: Fri, 15 Sep 2023 02:31:44 +0530 Subject: [PATCH 1/5] Updated Client Side Cron Regex --- src/lib/elements/forms/inputCron.svelte | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/lib/elements/forms/inputCron.svelte b/src/lib/elements/forms/inputCron.svelte index 484b92756b..96f0885826 100644 --- a/src/lib/elements/forms/inputCron.svelte +++ b/src/lib/elements/forms/inputCron.svelte @@ -18,7 +18,19 @@ let element: HTMLInputElement; let error: string; - const pattern = String.raw`^[^]+\s+[^]+\s+[^]+\s+[^]+\s+[^]+`; + /* + Below is a regex pattern which allows us to validate the cron string. + The pattern is not perfect, but it is a good start. + Allowed values: + - minute: 0-59 + - hour: 0-23 + - day of month: 1-31 + - month: 1-12 + - day of week: 0-6 + - wildcard * + - step values + */ + const pattern = "^(\\*|([0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9])|\\*\\/([0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9])) (\\*|([0-9]|1[0-9]|2[0-3])|\\*\\/([0-9]|1[0-9]|2[0-3])) (\\*|([1-9]|1[0-9]|2[0-9]|3[0-1])|\\*\\/([1-9]|1[0-9]|2[0-9]|3[0-1])) (\\*|([1-9]|1[0-2])|\\*\\/([1-9]|1[0-2])) (\\*|([0-6])|\\*\\/([0-6]))$"; onMount(() => { if (element && autofocus) { From c3faa36259084d6633a188471c95b9ec96091e79 Mon Sep 17 00:00:00 2001 From: Shashankh Kanni Date: Wed, 11 Oct 2023 18:35:15 +0530 Subject: [PATCH 2/5] unit tests still faulty --- src/lib/elements/forms/inputCron.svelte | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/lib/elements/forms/inputCron.svelte b/src/lib/elements/forms/inputCron.svelte index 96f0885826..e0e048f29e 100644 --- a/src/lib/elements/forms/inputCron.svelte +++ b/src/lib/elements/forms/inputCron.svelte @@ -18,20 +18,7 @@ let element: HTMLInputElement; let error: string; - /* - Below is a regex pattern which allows us to validate the cron string. - The pattern is not perfect, but it is a good start. - Allowed values: - - minute: 0-59 - - hour: 0-23 - - day of month: 1-31 - - month: 1-12 - - day of week: 0-6 - - wildcard * - - step values - */ - const pattern = "^(\\*|([0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9])|\\*\\/([0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9])) (\\*|([0-9]|1[0-9]|2[0-3])|\\*\\/([0-9]|1[0-9]|2[0-3])) (\\*|([1-9]|1[0-9]|2[0-9]|3[0-1])|\\*\\/([1-9]|1[0-9]|2[0-9]|3[0-1])) (\\*|([1-9]|1[0-2])|\\*\\/([1-9]|1[0-2])) (\\*|([0-6])|\\*\\/([0-6]))$"; - + const pattern = String.raw`/^(\*|\?|[0-5]?\d)(\,(\*|\?|[0-5]?\d)|\-(\*|\?|[0-5]?\d)|\/\d+)?\s+(\*|\?|[01]?\d|2[0-3])(\,(\*|\?|[01]?\d|2[0-3])|\-(\*|\?|[01]?\d|2[0-3])|\/\d+)?\s+(\*|\?|[1-9]|[12]\d|3[01])(W?)(\,(\*|\?|[1-9]|[12]\d|3[01])|\-(\*|\?|[1-9]|[12]\d|3[01])|\/\d+)?\s+(\*|\?|[1-9]|1[0-2]|jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)(\,(\*|\?|[1-9]|1[0-2]|jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)|\-(\*|\?|[1-9]|1[0-2]|jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)|\/\d+)?\s+(\*|\?|[0-7]((\#?)(\d?))(\w?)|sun|mon|tue|wed|thu|fri|sat)(\,(\*|\?|[0-7]((\#?)(\d?))(\w?)|sun|mon|tue|wed|thu|fri|sat)|\-(\*|\?|[0-7]((\#?)(\d?))(\w?)|sun|mon|tue|wed|thu|fri|sat)|\/\d((\#?)(\d?))(\w?)+)?$/i`; onMount(() => { if (element && autofocus) { element.focus(); @@ -66,6 +53,7 @@
Date: Wed, 11 Oct 2023 18:38:29 +0530 Subject: [PATCH 3/5] changes --- src/lib/elements/forms/inputCron.svelte | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/elements/forms/inputCron.svelte b/src/lib/elements/forms/inputCron.svelte index e0e048f29e..4df98ed16a 100644 --- a/src/lib/elements/forms/inputCron.svelte +++ b/src/lib/elements/forms/inputCron.svelte @@ -53,7 +53,6 @@
Date: Wed, 11 Oct 2023 18:46:03 +0530 Subject: [PATCH 4/5] simplified regex --- src/lib/elements/forms/inputCron.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elements/forms/inputCron.svelte b/src/lib/elements/forms/inputCron.svelte index 4df98ed16a..736b19f539 100644 --- a/src/lib/elements/forms/inputCron.svelte +++ b/src/lib/elements/forms/inputCron.svelte @@ -18,7 +18,7 @@ let element: HTMLInputElement; let error: string; - const pattern = String.raw`/^(\*|\?|[0-5]?\d)(\,(\*|\?|[0-5]?\d)|\-(\*|\?|[0-5]?\d)|\/\d+)?\s+(\*|\?|[01]?\d|2[0-3])(\,(\*|\?|[01]?\d|2[0-3])|\-(\*|\?|[01]?\d|2[0-3])|\/\d+)?\s+(\*|\?|[1-9]|[12]\d|3[01])(W?)(\,(\*|\?|[1-9]|[12]\d|3[01])|\-(\*|\?|[1-9]|[12]\d|3[01])|\/\d+)?\s+(\*|\?|[1-9]|1[0-2]|jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)(\,(\*|\?|[1-9]|1[0-2]|jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)|\-(\*|\?|[1-9]|1[0-2]|jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)|\/\d+)?\s+(\*|\?|[0-7]((\#?)(\d?))(\w?)|sun|mon|tue|wed|thu|fri|sat)(\,(\*|\?|[0-7]((\#?)(\d?))(\w?)|sun|mon|tue|wed|thu|fri|sat)|\-(\*|\?|[0-7]((\#?)(\d?))(\w?)|sun|mon|tue|wed|thu|fri|sat)|\/\d((\#?)(\d?))(\w?)+)?$/i`; + const pattern = String.raw`^.*\s+.*\s+.*\s+.*\s+.*`; onMount(() => { if (element && autofocus) { element.focus(); From 004cd6d5a4da0847be33a1f7df9aad4e1c3a87ae Mon Sep 17 00:00:00 2001 From: K Shashankh Vasudev <63902267+KanniShashankh@users.noreply.github.com> Date: Wed, 11 Oct 2023 19:44:49 +0530 Subject: [PATCH 5/5] Added a space :) --- src/lib/elements/forms/inputCron.svelte | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/elements/forms/inputCron.svelte b/src/lib/elements/forms/inputCron.svelte index 736b19f539..48d71b7d54 100644 --- a/src/lib/elements/forms/inputCron.svelte +++ b/src/lib/elements/forms/inputCron.svelte @@ -19,6 +19,7 @@ let error: string; const pattern = String.raw`^.*\s+.*\s+.*\s+.*\s+.*`; + onMount(() => { if (element && autofocus) { element.focus();