login_controller.dart 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import 'package:flutter/material.dart';
  2. import 'package:get/get.dart';
  3. class LoginController extends GetxController {
  4. final usernameController = TextEditingController();
  5. final passwordController = TextEditingController();
  6. final usernameFocusNode = FocusNode();
  7. final passwordFocusNode = FocusNode();
  8. final _isLogin = false.obs;
  9. bool get isLogin => _isLogin.value;
  10. set isLogin(bool value) {
  11. _isLogin.value = value;
  12. }
  13. @override
  14. void onInit() {
  15. super.onInit();
  16. }
  17. @override
  18. void onClose() {
  19. usernameController.dispose();
  20. passwordController.dispose();
  21. usernameFocusNode.dispose();
  22. passwordFocusNode.dispose();
  23. super.onClose();
  24. }
  25. void checkLogin() {
  26. final username = usernameController.text;
  27. final password = passwordController.text;
  28. if (validatorInputValue(username) && validatorInputValue(password)) {
  29. isLogin = true;
  30. } else {
  31. isLogin = false;
  32. }
  33. }
  34. //6-20 characters (letters or numbers)
  35. bool validatorInputValue(String value) {
  36. // 只允许字母和数字并且是6-20位
  37. return value.length >= 6 &&
  38. value.length <= 20 &&
  39. RegExp(r'^[a-zA-Z0-9]+$').hasMatch(value);
  40. }
  41. }