检查名字是否有效,采用 Proper case 和最多一个空格。

10 浏览
0 Comments

检查名字是否有效,采用 Proper case 和最多一个空格。

我搜索了所有正则表达式,但没有找到符合我的需求的。

在以上所有内容中,我都没有找到解决方案:

我需要检查姓名是否有效,如果

=> 每个单词的第一个字母应大写

=> 每个单词的其余字母应小写

=> 姓名应只包括 A-Z 和 a-z 的字母字符

=> 第一个单词长度应至少为 3

=> 名称单词之间不应有超过一个空格

例如:

sujay => false

Sujay => true

Sujay u => false

Sujay U => true

Sujay U n => false

Sujay U N => true

SuJay U => false

Sujay UN => false

Sujay Uls => true

Sujay9 => false

Su => false

Su U => false

Sujay U N => true

Sujay Uls Nat=> true

|*| 使用的检查函数:

static boolean chkNamVldFnc(String namVar)
{
    String namRegExpVar = "[A-Z][A-Za-z ]{2,}";
    Pattern pVar = Pattern.compile(namRegExpVar);
    Matcher mVar = pVar.matcher(namVar);
    return mVar.matches();
}

|*| 尝试 1:

String namRegExpVar = "[A-Z][A-Za-z ]{2,}";

|*| 尝试 2:

String namRegExpVar = "[A-Z][a-z]{2,}+//s[A-Z][a-z]{2,}";

|*| 尝试 3:

String NamRegExpVar = "[A-Z][a-z]{2,}||[A-Z][a-z]{2,}+//s[A-Z][a-z]";

请帮忙提供正确的正则表达式:

我还想知道为什么我们应该用 ^ 开头以 $ 结尾的方式编写正则表达式

admin 更改状态以发布 2023年5月21日
0
0 Comments

尝试:\n

^[A-Z][a-z]{2,}(?: [A-Z][a-z]*)*$

\n

    \n

  • 名字必须以字母A-Z开头,后跟至少2个字母a-z
  • \n

  • 可以选择性地在名字后面有其他名字,用空格分隔,以字母A-Z开头,后跟可选字母a-z
  • \n

0