Nic*_*Lie 8 java regex string validation matcher
如何验证正则表达式的全名?我只想要字母表(没有数字),只需要正则表达式的空格.这就是我到目前为止所做的.你能帮我修一下这个正则表达式吗?非常感谢你
public static boolean isFullname(String str) {
boolean isValid = false;
String expression = "^[a-zA-Z][ ]*$"; //I know this one is wrong for sure >,<
CharSequence inputStr = str;
Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(inputStr);
if (matcher.matches()) {
isValid = true;
}
return isValid;
}
Run Code Online (Sandbox Code Playgroud)
jef*_*unt 21
这个识别名称的问题是以文化为中心的,它实在没有可靠的工作希望.我真的建议针对这一点,因为有NO什么在任何国家构成了一个人的名字规范形式,地球上的任何地方,我知道的.我可以合法地改变我的名字#&*??? Smith,这不符合任何人的算法.并不是说这个具体的例子是很多人所做的事情,但是在考虑数据输入时,许多人并不认为在ASCII表之外,这会导致问题.
您可以反对这种情况发生的可能性,但在全球化的世界中,您的所有用户都越来越不可能为其姓名配备英语拼音拼写.您也很可能拥有来自不具有名/姓概念的文化的用户.不要认为,即使您的应用程序仅在特定国家/地区运行,您的某些用户也不会来自其他地方(人们会一直从一个国家/地区迁移到另一个国家/地区,而其中一些用户可能希望使用您的软件).
保护您的应用程序免受SQL注入此类字段(如果您将这些存储在数据库中),并保留它.
小智 6
此方法验证名称,如果名称没有或有数字或特殊字符,则返回false:
public static boolean isFullname(String str) {
String expression = "^[a-zA-Z\\s]+";
return str.matches(expression);
}
Run Code Online (Sandbox Code Playgroud)