Java Regex splits by a non-existent delimiter [duplicate]
$.validator.addMethod('AZ09_', function (value) {
return /^[a-zA-Z0-9.-_]+$/.test(value);
}, 'Only letters, numbers, and _-. are allowed');
When I use somehting like test-123
it still triggers as if the hyphen is invalid. I tried \-
and --
Escaping using \-
should be fine, but you can also try putting it at the beginning or the end of the character class. This should work for you:
/^[a-zA-Z0-9._-]+$/
Escaping the hyphen using \-
is the correct way.
I have verified that the expression /^[a-zA-Z0-9.\-_]+$/
does allow hyphens. You can also use the \w
class to shorten it to /^[\w.\-]+$/
.
(Putting the hyphen last in the expression actually causes it to not require escaping, as it then can't be part of a range, however you might still want to get into the habit of always escaping it.)
The \- maybe wasn't working because you passed the whole stuff from the server with a string. If that's the case, you should at first escape the \ so the server side program can handle it too.
- In a server side string: \\-
- On the client side: \-
- In regex (covers): -
Or you can simply put at the and of the [] brackets.