isStrongPassword property

bool? isStrongPassword

Checks whether the String is a "strong" password which complies to below rules :

  • At least 1 uppercase
  • At least 1 special character
  • At least 1 number
  • At least 8 characters in length

Example

String foo = 'qwerty';
bool isStrong = foo.isStrongPassword; // returns false
String foo = 'IsTh!$Strong';
bool isStrong = foo.isStrongPassword; // returns true

Implementation

bool? get isStrongPassword {
  if (this == null) return null;
  if (this!.isEmpty) return false;
  final regex = RegExp(
    r'^(?=.*([A-Z]){1,})(?=.*[!@#$&*]{1,})(?=.*[0-9]{1,})(?=.*[a-z]{1,}).{8,100}$',
  );
  return regex.hasMatch(this!);
}