使用Proper case和Max one space检查名称是否有效

时间:2017-06-07 19:14:15

标签: java regex validation names proper

我在网上搜索所有正则表达式exp,但是找到了符合我需要的任何内容。

regular expression to allow spaces between words

Regular expression to allow alphanumeric, max one space etc

Regex, every non-alphanumeric character except white space or colon

在上述情况中,我得到了一个解决方案:

  

如果是,我需要检查Nam是否有效   =>每个单词的第一个字母应该是大写字母   =>休息每个单词的所有字母都应该是小的   =>名称应该只有alpha char A-Z和a-z
  =>第一个词长度应为min 3
  =>名称shud在单词之间没有多于一个空格

例如:
sujay =>假的 Sujay =>是的

Sujay u =>假的 Sujay U =>是的

Sujay U n =>假的 Sujay U N =>是的

SuJay U =>假的 Sujay UN =>假的 Sujay Uls =>是的

Sujay9 =>假的 Su =>假的 Su U =>假的 Sujay U N =>真的 Sujay Uls Nat =>是的

| * |检查使用的功能:

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]";

请帮助我使用Proper Regular Exp:

我也想知道为什么我们用^开始Reg Exp并以$ 结束

1 个答案:

答案 0 :(得分:2)

尝试:

^[A-Z][a-z]{2,}(?: [A-Z][a-z]*)*$
  • 名字必须以字母A-Z开头,后跟至少2个字母a-z
  • 或者,名字后面可以有名字,用空格分隔,以字母A-Z开头,后跟可选字母a-z