Reputation: 45
Hi i am trying to validate a Date for mm/dd/yyyy patterns using regex in command object constraints.
regex:
^(((0?[1-9]|1[012])/(0?[1-9]|1\d|2[0-8])|(0?[13456789]|1[012])/(29|30)|(0?[13578]|1[02])/31)/(19|[2-9]\d)\d{2}|0?2/29/((19|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00)))$
grails constraints
static constraints = {
date(blank:false)
date(matches:"^(((0?[1-9]|1[012])/(0?[1-9]|1\d|2[0-8])|(0?[13456789]|1[012])/(29|30)|(0?[13578]|1[02])/31)/(19|[2-9]\d)\d{2}|0?2/29/((19|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00)))$")
}
i am getting following error
unexpected char: '\' @ line 61, column 47.
^(((0?[1-9]|1[012])/(0?[1-9]|1\d|2[0-8])
it is not accepting the \
Upvotes: 0
Views: 288
Reputation: 1376
You need to escape "\" and "$" signs:
"^(((0?[1-9]|1[012])/(0?[1-9]|1\\d|2[0-8])|(0?[13456789]|1[012])/(29|30)|(0?[13578]|1[02])/31)/(19|[2-9]\\d)\\d{2}|0?2/29/((19|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00)))\$"
Upvotes: 1