如何拆分输入的邮箱地址并校验@右侧部分是否以.com结尾
邮箱有效性校验实现方案
现有代码问题说明
你编写的elif email.split("@", 2)存在两处问题:
split("@", 2)的第二个参数代表最大拆分次数,传2意味着最多拆分2次,最多会得到3个片段,不符合你要求拆成左右两个部分的需求,应该改为split("@", 1),确保不管有多少个@,最多只拆分1次,得到最多2个片段- 你只调用了split方法没有接收返回值、也没有设置判断条件,这段代码单独写在
elif后会直接触发语法错误
完整实现步骤
- 第一步:对输入的邮箱字符串按
@拆分,限制最大拆分次数为1 - 第二步:判断拆分结果的长度是否为2,若不是说明邮箱没有
@,直接判定为不合法 - 第三步:提取拆分后的右侧域名部分,调用
endswith('.com')方法判断是否以.com后缀结尾
示例代码
def check_email_valid(email): # 按@最多拆分1次,得到[用户名, 域名] 或者 仅包含原字符串的列表 split_res = email.split("@", 1) if len(split_res) != 2: # 不存在@,校验不通过 return False domain_part = split_res[1] # 校验域名是否以.com结尾 return domain_part.endswith('.com') # 测试示例 print(check_email_valid("student@school.com")) # 输出 True print(check_email_valid("test@example.cn")) # 输出 False print(check_email_valid("wrongmail.com")) # 输出 False
内容的提问来源于stack exchange,提问作者AsgardiAN
相关产品推荐
相关产品推荐

