Help Leecher Help Leecher - 5 months ago 15
jQuery Question

How to create jQuery Validator method for username constraints?

So I currently have this method for enforcing strong passwords:

$.validator.addMethod('goodPassword', function(value, element){
return this.optional(element) ||
value.length >= 6 &&
/\d/.test(value) &&
/[a-z]/i.test(value);
}, 'Your password sucks boy, you need at least 6 char and both number and char in that motherf.')


I want to create something similar for my usernames to limit them only to letters, numbers, dashes, underscores and periods. I can't seem to figure out how to go about it. I read about regex a little but still couldn't figure out how exactly I should go about my code.

This is what I currently have:

$.validator.addMethod('goodUsername', function(value, element)){
return this.optional(element) ||
value.length >= 4 // && or ||, not really sure what to put here
//something to check if entered data contains anything other than letters, numbers, dashes, underscores and periods
}, 'What kind of fkin username is that? You can only use letters, numbers, dashes, underscores and periods.')


Can someone show me the way please?

Answer

Here's the code that uses Javascript regex functionality

$.validator.addMethod('goodUsername', function(value, element)){
    return this.optional(element) || value.match(/^[\w.-]{4,}$/m)
}, 'What kind of fkin username is that? You can only use letters, numbers, dashes, underscores and periods.')

As correctly noted by @rock321987, it'd still allow ...-... and other strange usernames.

Comments