Knockout-Validation icon indicating copy to clipboard operation
Knockout-Validation copied to clipboard

Pattern with regex not working as expected

Open AnyaHunt opened this issue 5 years ago • 1 comments

I have really liked using knockout-validation. I think it works well. I've just come across one small thing (that has been verified by someone else). I have a knockout observable (string) with the following validation extend definition

pattern: {
     message: this.gui.validationCannotInclude,
     params: '^[^\/\\\^\$\.\|\?\*\+\(\)\"\']+$'
}

It works fine detecting all of the escaped characters, except \ - it even catches /. I've checked the regex in https://www.regextester.com/ and it seems correct. Attempted rewriting the regex to put the backslash elsewhere in the definition, but it doesn't help.

The complete definition on this observable is:

ko.observable(this.Name).extend({
required: {
    message: this.gui.validationRequired
},
maxLength: {
    params: 50,
    message: this.gui.validationLongerThan50
},
pattern: {
   message: this.gui.validationCannotInclude,
   params: '^[^\/\\\^\$\.\|\?\*\+\(\)\"\']+$'
}

Thank you.

AnyaHunt avatar May 14 '19 18:05 AnyaHunt

I think for javascript you may be missing the leading and ending forward slashes /^[^\/\\\^\$\.\|\?\*\+\(\)\"\']+$/

ellenhutchings avatar Nov 06 '19 01:11 ellenhutchings