我已经尝试为我的移动应用程序制作自己的验证器,问题是有时我会收到用户的反馈,他们切断了验证器并且出现了错误,我试图到处寻找解决方案,但至少在 flutter 的前端我找不到任何可靠的包......其中许多已经过时了至少 2-3 年。
另外,我不知道密码电子邮件字段中允许哪些内容以及不允许哪些内容,我是否需要截掉可能会弄乱我的数据库的符号或字符,或者 mysql2 可以处理它?
有人对此有任何解决方案吗?或者你们只在后端使用验证器?
谢谢。 这是我的代码:
bool isValidUsername(String username) {
final RegExp usernamePattern =
RegExp(r'^[\p{L}\p{N}_.-]{3,20}$', unicode: true);
return usernamePattern.hasMatch(username);
}
bool isValidEmail(String email) {
final RegExp emailPattern = RegExp(
r'^[^\s@]+@[^\s@]+\.[^\s@]+$',
unicode: true,
);
return emailPattern.hasMatch(email);
}
bool isValidPassword(String password) {
final RegExp passwordPattern = RegExp(
r'^[\p{L}\p{N}\p{P}\p{S}\p{Zs}]{8,50}$',
unicode: true,
);
final RegExp problematicPattern = RegExp(
r'[\x00-\x1F\x7F]',
unicode: true,
);
return passwordPattern.hasMatch(password) &&
!problematicPattern.hasMatch(password);
}
您的电子邮件验证正则表达式应替换为 package:email_valid。 匹配有效电子邮件的正则表达式大约有 2400 个字符。
此外,如果您为 SQL 交互练习了正确的占位符,那么密码中的内容根本不重要。 停止过滤那些。特别审查正确的马电池钉并允许用户想要的任何东西,只要有足够的位即可。