I\'m trying to check that the first character of a username is capital, the following can be letters or numbers and at most 20 characters long. Can someone explain why my synta
Why can't you let the poor users pick their own usernames? What you should do is convert all caps to lowercase.
"User Name".toLowerCase();
But if you are truly evil, you should change that z
to a Z
:
/^[A-Z][A-Za-z0-9_-]{3,19}$/
Your first Z is not a capital Z.
/^[A-Z][a-z0-9_-]{3,19}$/
Your first character needs to be A-Z
, not A-z
So
/^[A-z][a-z0-9_-]{3,19}$/
Should be
/^[A-Z][a-z0-9_-]{3,19}$/
I would do it like this:
var firstChar = strToCheck.substring(0, 1);
if (firstChar == firstChar.toUpperCase()) {
// it is capital :D
}
You have a typo, the first z should be a capital -
/^[A-Z][a-z0-9_-]{3,19}$/