2016-06-10 51 views
0

我是新手正则表达式!!!!正则表达式一致的人名

有人能帮我验证人名吗?

我需要验证,并抛出错误,如果:

•口是心非的第一个字母 •号码在第一个字母 •TRIM

谢谢!!!!!

+0

转到http://regex101.com/并尝试一些想法,然后寻求帮助。另外,测试通过,而不是失败。例如,测试通过的名称。 – 2016-06-10 19:18:42

+8

你有什么反对被称为例如Aakansha的人?也许看看[Falsehoods Programmers Believe About Names](https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/)。 –

+0

@AndyTurner那个链接太棒了。谢谢,Aandy。 Jjames,欢迎来到詹姆斯坦纳, –

回答

4

对于你描述的验证,正则表达式不是要走的路。 (而正则表达式是我最喜欢的东西之一,所以我很难说。)相反,通过使用String类的基本方法,您将获得更多可读,可调试的代码。

通过“在第一个字母口是心非”,你的意思是检查,如果前两个字母是一样的吗?如果是这样,那么验证可能会为“Aaron”等有效名称引发错误。 (取决于你如何处理的情况下),如果这仍然是绝对必要的,使用此:
if (name.charAt(0).equalsIgnoreCase(name.charAt(1))) // Throw your error.

至于修剪的字符串,你一般最好只使用字符串的.trim()方法来纠正错误,而不是未通过验证。如果由于某种原因,你需要抛出一个错误,使用:
if (name.length() != name.trim.length()) // Throw your exception.

最后,检查是否第一个字母是一个数字,你想charAt()Character.isDigit(),像这样:
if (Character.isDigit(name.charAt(0)) // Throw your exception.

(有关第一个字母是数字问题的更多信息,请参见this question)。

+0

真棒......谢谢你的家伙!所以我看起来错了(Regex)哈哈 – Lucas