Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Regular Expression for Cron Expression in Javascript

I'm trying to figure out a correct validation for custom cron inputs. Here's what I have.

Html

<input id="freqInput" type="text" placeholder="Enter CRONJOB" class="form-control" />

Javascript

function isCronValid(freq) {
    var cronregex = new RegExp("/^(\*|((\*\/)?[1-5]?[0-9])) (\*|((\*\/)?[1-5]?[0-9])) (\*|((\*\/)?(1?[0-9]|2[0-3]))) (\*|((\*\/)?([1-9]|[12][0-9]|3[0-1]))) (\*|((\*\/)?([1-9]|1[0-2]))) (\*|((\*\/)?[0-6]))$/");
    return cronregex.test(freq);
}

Am I missing something? It's not working.

Controller

public string HangfireCronJob(string url, string freqInput)
{
    return freqInput.ToString();  
}
like image 266
Mathew Dodson Avatar asked Jul 21 '26 16:07

Mathew Dodson


1 Answers

It appears your regex expression is invalid. Try this:

document.getElementById('validate').addEventListener('click', () =>{
    console.log(isCronValid(document.getElementById('freqInput').value));
});

function isCronValid(freq) {
  var cronregex = new RegExp(/^(\*|([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]))$/);
  return cronregex.test(freq);
}
<input id="freqInput" type="text" placeholder="Enter CRONJOB" class="form-control" value="* * * * *" />
<button id="validate">Validate</button>
like image 164
95faf8e76605e973 Avatar answered Jul 23 '26 06:07

95faf8e76605e973



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!