如何检查字符串是否同时包含大写和小写字符

Mol*_*0ko 2 string validation dart flutter

我需要验证用户输入的密码,并检查密码是否在 Dart 中至少包含一个大写和一个小写字符。

我写了这个字符串扩展:

extension StringValidators on String {
  bool containsUppercase() {
    // What code should be here?
  }

  bool containsLowercase() {
    // What code should be here?
  }
}
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

final text = passwordTextController.text;
final isValid = text.containsUppercase() && text.containsLowercase();
Run Code Online (Sandbox Code Playgroud)

有没有用于此目的的正则表达式?或者它应该是简单的算法?请帮我找出优雅的方法。谢谢!

San*_* AV 12

  • 至少 1 个大写字母,
  • 至少 1 个小写字母,
  • 至少 1 个数字,
  • 至少 1 个特殊字符,
  • 通用允许字符 (!@#$&*~)
bool validateStructure(String value){
        String  pattern = r'^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[!@#\$&*~]).{8,}$';
        RegExp regExp = new RegExp(pattern);
        return regExp.hasMatch(value);
  }
Run Code Online (Sandbox Code Playgroud)


小智 10

extension StringValidators on String {
  bool get containsUppercase => contains(RegExp(r'[A-Z]'));
  bool get containsLowercase => contains(RegExp(r'[a-z]'));
}
Run Code Online (Sandbox Code Playgroud)