首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >确保用户在输入中包含“@”符号

确保用户在输入中包含“@”符号
EN

Stack Overflow用户
提问于 2017-02-15 15:35:53
回答 3查看 219关注 0票数 0

我想验证用户在我的程序中输入的数据(一个电子邮件地址)。如果用户输入“@”符号,程序应该接受它。如果没有,程序应该循环并再次要求电子邮件。到目前为止,我已经尝试这样做了,但是对于输入的每个字符,程序循环:

代码语言:javascript
运行
复制
emailright = True

while emailright == True:    
    email = input("Please enter your email address")
    character = ("@")
    for character in email:
        if character == '@':
            print("Your email address had been registered")
            emailright = True
        else:
            print("invalid email address, please re-enter")
            emailright = False

while循环及其内部的所有内容也都已缩进。谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-15 15:39:51

虽然有许多更好的电子邮件验证方法,但这更简洁地实现了您的逻辑:

代码语言:javascript
运行
复制
email = input("Please enter your email address")
while '@' not in email:    
    email = input("invalid email address, please re-enter")
print("Your email address had been registered")
票数 3
EN

Stack Overflow用户

发布于 2017-02-15 15:45:14

像这样吗?

代码语言:javascript
运行
复制
import re


is_email_valid = None


while is_email_valid is None:
    email = input("Please enter your email address")
    is_email_valid = re.match('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$', email)
    if is_email_valid:
        print("Your email address had been registered")
    else:
        print("invalid email address, please re-enter")

这是一个我从其中提取正则表达式的站点:

http://emailregex.com/

票数 0
EN

Stack Overflow用户

发布于 2017-02-15 15:37:33

代码语言:javascript
运行
复制
while True:    
    email = input("Please enter your email address")
    if '@' in email:
        break

或者:

email

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42253664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档