📌  相关文章
📜  如何在Java使用正则表达式验证用户名

📅  最后修改于: 2021-04-30 03:17:19             🧑  作者: Mango

给定一个表示用户名的字符串str ,任务是在正则表达式的帮助下验证该用户名。

如果满足以下所有条件,则认为用户名有效:

  • 用户名包含630个字符(包括10个字符) 。如果用户名
    由少于6个或大于30个字符,则该用户名无效。
  • 用户名只能包含字母数字字符和下划线(_)。字母数字字符描述由小写字符[a – z] ,大写字符[A – Z]和数字[0 – 9]组成的字符集。
  • 用户名的第一个字符必须是字母字符,即小写字符
    [a – z]
    或大写字符[A – Z]

例子:

方法:想法是使用正则表达式来验证给定的用户名是否有效。可以按照以下步骤计算答案:

  1. 获取字符串。
  2. 形成一个正则表达式来验证给定的字符串。根据条件,可以通过以下方式形成正则表达式:
    regex = "^[A-Za-z]\\w{5, 29}$"
    

    在哪里:

    • “ ^”表示字符串的起始字符。
    • “ [A-Za-z]”确保起始字符使用小写或大写字母。
    • “ \\ w {5,29}”表示检查以确保其余项目均为单词项目,其中包括下划线,直到到达末尾并用$表示。
    • “ {5,29}”代表给我们的6-30个字符约束减去预定义的第一个字符。
  3. 将字符串与正则表达式匹配。在Java,可以使用Pattern.matcher()完成此操作。
  4. 如果字符串与给定的正则表达式匹配,则返回true;否则返回false。

下面是上述方法的实现:

// 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 = "Geeksforgeeks";
        System.out.println(isValidUsername(str1));
  
        // Test Case: 2
        String str3 = "1Geeksforgeeks";
        System.out.println(isValidUsername(str3));
  
        // Test Case: 3
        String str5 = "Ge";
        System.out.println(isValidUsername(str5));
    }
}
输出:
true
false
false