如何在不使用Firebase Auth的前提下用Kotlin实现邮箱格式校验
Kotlin 无Firebase依赖实现邮箱格式校验方案
你可以直接使用Android SDK内置的邮箱格式匹配规则完成校验,全程不需要引入Firebase Authentication组件,和你现有字段校验的逻辑风格完全兼容。
实现逻辑
直接调用系统内置的android.util.Patterns.EMAIL_ADDRESS做正则匹配,不需要自己手写正则规则,可以覆盖绝大多数合法邮箱格式的校验场景,把邮箱校验逻辑合并到你原有的字段校验判断中即可。
完整示例代码
和你给出的姓名、手机号校验风格完全对齐的实现:
// 先拿到各输入框去除首尾空格后的内容 val fullNameStr = FullName.text.trim().toString() val phoneStr = PhoneNo.text.trim().toString() val emailStr = EmailEt.text.trim().toString() // 替换为你自己的邮箱输入框变量名 if (fullNameStr.isNotEmpty() && phoneStr.length == 10 && phoneStr.isNotEmpty() // 新增邮箱校验逻辑 && emailStr.isNotEmpty() && Patterns.EMAIL_ADDRESS.matcher(emailStr).matches() ){ // 所有字段校验通过,执行传入Firebase的逻辑 } else { Toast.makeText(this, "请填写完整且格式正确的必填信息", Toast.LENGTH_LONG).show() }
单独实时校验邮箱的封装(按需使用)
如果需要用户输入邮箱时实时抛出格式错误提示,可以单独封装判断方法:
fun isEmailValid(email: String): Boolean { return email.isNotEmpty() && Patterns.EMAIL_ADDRESS.matcher(email).matches() } // 调用示例 if (!isEmailValid(EmailEt.text.trim().toString())) { EmailEt.error = "请输入合法的邮箱格式" }
以上逻辑完全符合你的需求:输入abcdefg这类不含@的内容会判定为非法,输入abc@gmail.com这类标准格式会判定为合法。
内容的提问来源于stack exchange,提问作者user17056863
相关产品推荐
相关产品推荐

