0

在我的应用程序中,我有字段名称。如果字段包含数字或 .,?... 字符,它会完美运行,但是当我输入 usman(space)shafi 时会出错。我的陈述将空格作为两个单词之间的无效字符。请谁能告诉我如何使它工作。谢谢

这是代码

   if(!Pattern.matches("[a-zA-Z]+", textname.getText().toString().trim())){

         textname.setError("Invalid Characters");

     }
    // if(!Pattern.matches("[a-zA-Z]+", textkin.getText().toString().trim())){

  //     textkin.setError("Invalid Characters");

    // }");
4

3 回答 3

2

将空格添加到您的常规表达式中:

    if(!Pattern.matches("[a-zA-Z ]+", textname.getText().toString().trim())){

         textname.setError("Invalid Characters");

     }
于 2013-10-21T08:42:22.030 回答
0

如果它只是里面的一个空白,你可以尝试这样的事情:

text = textname.getText().toString().trim();
string[] txtSplt = text.split(" ");

text = "";
foreach (string s : txtSplt)
{
    text += s;
}

然后您可以继续检查条件而不更改您的正则表达式。

于 2013-10-21T08:42:35.380 回答
0

通过这种方式做到这一点。你的问题将得到解决。

    String regex = "([A-Z a-z]+)";
    Pattern pattern1 = Pattern.compile(regex);
    Matcher matcher1 = pattern1.matcher(textname.getText().toString());

    if(!matcher1.matches()){
          textname.setError("Invalid Characters");
    }
于 2013-10-21T09:19:11.350 回答