如何制作一个仅用于电子邮件的 tkinter 条目小部件

How to make a tkinter entry widget for email only

我正在 python 中使用 Tkinter 构建一个简单的登录系统,我想通过验证用户类型值应该是电子邮件而不是其他任何内容来获取用户电子邮件 ID。怎么做的,请哪位大侠告诉我。

这是我的代码的简单版本,

from tkinter import *

root = Tk()
root.geometry("400x300")


def signIn():

    if entry_var2.get().isdigit():
        print("emailId should not have only numbers")
    elif entry_var2.get().isalpha():
        print("emailId shold have not only alphabets")
    elif entry_var2.get().isspace():
        print("emailId don't have space")
    else:
        print("Login Success") # But it gives not the output I want


# username
entry_var1 = StringVar()
entry1 = Entry(root, textvariable = entry_var1)
entry1.grid(row=0, column=0)

# email id
entry_var2 = StringVar()
entry2 = Entry(root, textvariable = entry_var2)
entry2.grid(row=0, column=0)

# Sign In
button = Button(root, text="Result", command=signIn)
button.grid(row=1, column=0)

root.mainloop()

使用正则表达式检查电子邮件字符串。

import re

regex = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
 
 
def signIn():
    if(re.fullmatch(regex, entry_var2.get())):
        print("Valid Email")
    else:
        print("Invalid Email")

这是 python 使用正则表达式验证电子邮件的函数:

import re
 
regex = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'

def check(entry_var2):
    if(re.fullmatch(regex, entry_var2)):
        print("Valid Email")

    else:
        print("Invalid Email")

完整的解决方案请查看this文章