Given a string str which represents a username, the task is to validate this username with the help of Regular Expressions.
A username is considered valid if all the following constraints are satisfied:
- The username consists of 6 to 30 characters inclusive. If the username
consists of less than 6 or greater than 30 characters, then it is an invalid username. - The username can only contain alphanumeric characters and underscores (_). Alphanumeric characters describe the character set consisting of lowercase characters [a – z], uppercase characters [A – Z], and digits [0 – 9].
- The first character of the username must be an alphabetic character, i.e., either lowercase character
[a – z] or uppercase character [A – Z].
Examples:
Input: str = “1Geeksforneveropen”
Output: False
Explanation:
The given username is invalid because it starts with a digit.Input: str = “Geeksforneveropen_21”
Output: True
Explanation:
The given username satisfies all the conditions mentioned.Input: str = “Geeksforneveropen?10_2A”
Output: False
Explanation:
The given username is invalid because it consists of invalid character “?”.
Approach: The idea is to use Regular Expressions to validate if the given username is valid or not. The following steps can be followed to compute the answer:
- Get the string.
- Form a regular expression to validate the given string. According to the conditions, the regular expression can be formed in the following way:
regex = "^[A-Za-z]\\w{5, 29}$"
Where:
- “^” represents that starting character of the string.
- “[A-Za-z]” makes sure that the starting character is in the lowercase or uppercase alphabet.
- “\\w{5, 29}” represents a check to make sure that the remaining items are word items, which includes the underscore, until it reaches the end and that is represented with $.
- The “{5, 29}” represents the 6-30 character constraint given to us minus the predefined first character.
- Match the string with the Regex. In Java, this can be done using Pattern.matcher().
- Return true if the string matches with the given regex, else return false.
Below is the implementation of the above approach:
// Java program to validate a username // using Regular Expression or ReGex import java.util.regex.*; class GFG { // Function to validate the username public static boolean isValidUsername(String name) { // Regex to check valid username. String regex = "^[A-Za-z]\\w{5,29}$" ; // Compile the ReGex Pattern p = Pattern.compile(regex); // If the username is empty // return false if (name == null ) { return false ; } // Pattern class contains matcher() method // to find matching between given username // and regular expression. Matcher m = p.matcher(name); // Return if the username // matched the ReGex return m.matches(); } // Driver Code public static void main(String[] args) { // Test Case: 1 String str1 = "Geeksforneveropen" ; System.out.println(isValidUsername(str1)); // Test Case: 2 String str3 = "1Geeksforneveropen" ; System.out.println(isValidUsername(str3)); // Test Case: 3 String str5 = "Ge" ; System.out.println(isValidUsername(str5)); } } |
true false false
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!