0

我有一个文本框,我将输入作为全名。

当用户输入输入时My Name,我没有收到任何错误。但是,当用户输入输入时My Name Is,我得到错误。

我拥有的正则表达式是

([a-zA-Z]+|[a-zA-Z]+\\s[a-zA-Z]+)

真正想要的是,文本应该有

only (a-z OR A-Z) AND white space...

演示输入是

  1. 我的名字是 XYZ PQR STU
  2. 我的名字是 XYZ
  3. XYZ PQR STU

如何使用正则表达式来完成?

更新 1

我在用

    Pattern p = Pattern.compile("[a-zA-Z\\s]");
    Matcher m = p.matcher("DummyName");
    boolean matchFound = m.matches();

我仍然matchFound得到FALSE

4

2 回答 2

3

\s用于空格。如果您想在字符类以及大写和小写字母中允许空格,您可以使用[a-zA-Z\s].

于 2012-07-06T23:23:42.493 回答
2

试试这个^[a-zA-Z]+(?:\s+[a-zA-Z]+)*$。你可以根据自己的口味稍微调整一下。这?:是为了确保该组不捕获 - 如果您只是测试完整的字符串,则不需要这样做。^并将$匹配输入文本的开头和结尾 - 不是直接需要的,matches()但它是一个很好的保障。

于 2012-07-06T23:41:57.747 回答