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