-2

我在注册表单中验证名字,它只允许小写和大写字母以及 (,/,#,-)。

my validation patter is ^(([a-zA-Z])(/,#,-))*$

但它没有正确验证。请任何人帮助我解决这个问题并给出正确创建模式的提示。

4

4 回答 4

2

试试这个正则表达式:[a-zA-Z]+(\-[a-zA-Z]+)?

你可以在不同的网站上在线测试正则表达式,比如这个

于 2013-05-08T11:52:12.750 回答
1

正如sandkasten 所说,您应该提供不起作用的示例。我想你正在寻找这个

^([a-zA-Z]|[/#-])*$

竖线 (|) 表示字符或其中之一 /#*

于 2013-05-08T11:52:11.847 回答
1
boolean test = "a#aa-/".matches("^[a-zA-Z#/-]+$");
Log.e("TEst", "test " + test);

试试这个方法

于 2013-05-08T11:54:56.340 回答
1

根据您的前提(使用 /-#,不使用空格,而是作为名字),它可能类似于:

^([A-Z][a-z]*([\/#\-][A-Z][a-z]*)*)$

这将匹配:

  • 阿尔弗雷德
  • 罗伯特-路易斯
  • 约翰#约瑟夫
  • 凯文/贝蒂

但不会

  • CharLes(L 是大写,不应该)
  • Mona-Sue(空间)
  • penny(P 不是大写)

但是,您肯定需要给我们一些例子,或者我们只是在玩而不是帮助您。我们没有水晶球(至少我)

于 2013-05-08T12:08:22.317 回答