如何验证全名的正则表达式?我只想要字母(没有数字)和正则表达式的空格。这就是我到目前为止所做的。你能帮我修复正则表达式吗?非常感谢
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;
}
这个识别名字的问题非常以文化为中心,而且它确实没有希望可靠地工作。我真的建议不要这样做,因为有NO据我所知,在地球上任何国家、任何地方构成人名的规范形式。我可以合法地将我的名字更改为#&*∫Ω∆ Smith
,这不适合任何人的算法。并不是说这个具体示例是很多人都会做的事情,而是很多人在考虑数据输入时不会跳出 ASCII 表进行思考,这会导致问题。
您可以反对这种情况发生的可能性,但在全球化的世界中,所有用户的名字都采用英文音译拼写的可能性越来越小。您也很可能拥有来自没有名字/姓氏概念的文化的用户。不要假设,即使您的应用程序仅在特定国家/地区运行,您的某些用户也不会来自其他地方(人们一直在从一个国家/地区迁移到另一个国家/地区,其中一些人可能希望使用您的应用程序)软件)。
保护您的应用程序免受此类字段的 SQL 注入(如果您将这些字段存储在数据库中),然后就这样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)