Jun-25-2024, 11:46 AM
basically im making a reminder app as practice. i try to use regex to verify that the phone number the user inputs is UK based. So basically the input should only start with + and end with 12 digits. However some of the entries that i make are without the + symbol. my code follows. any help is much appreciated
def save_info(): """Save the entered reminder information if valid.""" try: df = pd.read_csv("data.csv") except FileNotFoundError: with open("data.csv", "w") as file: writer = csv.writer(file) writer.writerow(["name", "date", "description", "phone number"]) df = pd.DataFrame(columns=["name", "date", "description", "phone number"]) date = date_ent.get() if check_date(date): name = name_ent.get().title() name_parts = name.split(" ") if len(name_parts) < 2: messagebox.showerror(title="Ooooooops", message="You have not entered a first and last name!!\nPlease try again!!") return desc = description_ent.get() phone_number = phone_ent.get() reg_exp = re.compile(r'^\+\d{12}$') if not re.match(reg_exp, phone_number): messagebox.showerror(title="OOOOOOps", message="You have not entered a valid phone number!!\n" "Please enter a phone number with a valid country code starting with the + symbol.\n" "The phone number should be 12 digits long!!\n") return if check_alphabetical(name): if check_alphabetical(desc): if messagebox.askyesno(title="Save this information?", message=f"On the {date} {name_parts[1]}, {name_parts[0]} should be reminded to {desc}!! " f"Their phone number is {phone_number}\nIs this information correct?"): saved_data=df.to_dict("records") saved_data.append({"name":name,"date":date,"description":desc,"phone number":phone_number}) df2=pd.DataFrame(saved_data) df2.to_csv("data.csv", index=False) date_ent.delete(0, END) name_ent.delete(0, END) description_ent.delete(0, END) phone_ent.delete(0, END)