JavaScript Username Validation using Regex (original) (raw)
Last Updated : 16 Jan, 2025
We are going to validate usernames in JavaScript. Username validation is a common requirement in user registration forms, ensuring that usernames meet the specific criteria
- It must start with a letter.
- Can contain letters, numbers, and underscores.
- Must be between 3 and 16 characters long.
Simple Regular Expression-Based Validation
In this approach, we are using only simple regular expressions to validate usernames.
JavaScript `
function validateUsername(username) { const pattern = /^[a-zA-Z][a-zA-Z0-9_]{2,15}$/; return pattern.test(username); }
//Driver Code Starts
// Test cases
console.log(validateUsername("user123"));
console.log(validateUsername("_user"));
console.log(validateUsername("u"));
console.log(validateUsername("user_name123"));
console.log(validateUsername("user@name"));
//Driver Code Ends
`
Output
true false false true false
**In this example
- **^ : Start of the string
- [**a-zA-Z] : The username must start with a letter (uppercase or lowercase).
- **[a-zA-Z0-9_] : The username can contain letters, numbers, and underscores.
- ****{2,15}** : The username must be between 3 and 16 characters long (since the first character is already matched, we use {2,15} for the remaining length).
- ****$** : End
Combined Logic for More Customization
In some cases, using only regular expressions might not be enough, especially if you have more complex validation rules.
JavaScript `
function validateUsername(username) { if (username.length < 3) { return "Username is too short."; } if (username.length > 16) { return "Username is too long."; }
// Regex to check valid characters: letters, numbers, dots, underscores
const pattern = /^[a-zA-Z0-9._]+$/;
if (!pattern.test(username)) {
return "Username contains invalid characters. Only letters, numbers, dots, and underscores are allowed.";
}
// Check that it doesn't start or end with a dot or underscore
if (username.startsWith('.') || username.startsWith('_')) {
return "Username cannot start with a dot or underscore.";
}
if (username.endsWith('.') || username.endsWith('_')) {
return "Username cannot end with a dot or underscore.";
}
return "Valid username.";
}
//Driver Code Starts console.log(validateUsername("user.name")); console.log(validateUsername(".username")); console.log(validateUsername("username_")); console.log(validateUsername("us")); console.log(validateUsername("a_very_long_username_example")); console.log(validateUsername("valid_user123")); console.log(validateUsername("invalid#name")); //Driver Code Ends
`
Output
Valid username. Username cannot start with a dot or underscore. Username cannot end with a dot or underscore. Username is too short. Username is too long. Valid username. Username contains invalid cha...