Knockout-Validation
Knockout-Validation copied to clipboard
Pattern with regex not working as expected
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.
I think for javascript you may be missing the leading and ending forward slashes
/^[^\/\\\^\$\.\|\?\*\+\(\)\"\']+$/