Just trying to use javascript's regex capabilities with the .test() function.
  var nameRegex = '/^[a-zA-Z0-9_]{6,20}$/';
  if(nameRegex.test($('#username').val())) {
      ...
  }
The error is on this line if(nameRegex.test($('#username').val())) {
Debugger breaks there and says "Uncaught TypeError: undefined is not a function". It seems like .test() is not defined? Shouldn't it be?
As it currently stands, nameRegex isn't a regex but a string and String doesn't have test functon which is why you are getting that error.
Remove the quotes around your regex. That is the literal form of regex.
var nameRegex = /^[a-zA-Z0-9_]{6,20}$/; //remove the quotes
                        Also, you can create the RegExp from a string by the inherent constructor within javascript.
var nameRegex = '^[a-zA-Z0-9_]{6,20}$';
var regex = new RegExp(nameRegex);
...
if(regex.test(stringToTest)) {
    ...
}
...
MDN Docs :: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
NOTE: don't provide the initial '/' slashes in the string when creating the regex object... It will add them.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With