登录限制

This commit is contained in:
huyulong 2025-01-02 17:02:25 +08:00
parent c3f56cb8ca
commit d65dd80837

View File

@ -34,11 +34,53 @@ public class LoginPanel : Base
{
Debug.Log("没有找到上次登录的账号.");
}
// 初始化:监听输入框和按钮事件
id.onValueChanged.AddListener(OnAccountInputChanged);
pwd.onValueChanged.AddListener(OnPasswordInputChanged);
loginBtn.onClick.AddListener(OnClickLoginBtn);
getYzmBtn.onClick.AddListener(OnClickGetYzmBtn);
image.gameObject.SetActive(false);
//初始状态:禁用登录按钮
loginBtn.interactable = false;
}
// 检查账号输入是否合法
private void OnAccountInputChanged(string input)
{
if (!IsValidAccount(input))
{
id.text = "";
Debug.Log("账号输入不合法!");
}
UpdateLoginButtonState();
}
// 更新登录按钮状态
private void UpdateLoginButtonState()
{
// 按钮启用条件:账号不为空且密码长度 >= 6
loginBtn.interactable = !string.IsNullOrEmpty(id.text) && pwd.text.Length >= 6;
}
// 检查密码输入是否合法
private void OnPasswordInputChanged(string input)
{
if (input.Length > 16)
{
pwd.text = input.Substring(0, 16); // 超过16位截取前16位
Debug.Log("密码长度超过限制!");
}
// 设置为显示 '*' 的形式
string hiddenPassword = new string('*', pwd.text.Length);
pwd.textComponent.text = hiddenPassword;
UpdateLoginButtonState();
}
public void OnClickGetYzmBtn()
{
@ -112,5 +154,23 @@ public class LoginPanel : Base
//ReadRoom.instance.head();
}
// 账号合法性验证
private bool IsValidAccount(string input)
{
if (string.IsNullOrEmpty(input)) return false;
// 检查长度限制
if (input.Length < 3 || input.Length > 20) return false;
// 检查首字符是否为字母
if (!char.IsLetter(input[0])) return false;
// 检查是否只包含字母、数字和下划线
foreach (char c in input)
{
if (!char.IsLetterOrDigit(c) && c != '_') return false;
}
return true;
}
}