如何在AWS Lex代码挂钩中验证电话号码和电子邮件(在Lambda中)。
我曾尝试使用以下代码验证AWS Lex聊天机器人中的电话号码和电子邮件地址。我收到了错误。
import re
EMAIL_REGEX = re.compile(r"[^@]+@[^@]+\.[^@]+")
if len(str(phonenumber)) <= 10 or len(str(phonenumber)) >= 10:
return build_validation_result(False,
'PhoneNumber',
'Please enter valid phone number which contains 10 digits'
)
if not EMAIL_REGEX.match(email):
return build_validation_result(False,
'Email',
'Please enter valid email address'
)
答案 0 :(得分:0)
首先,您需要修复一些格式。在指南here之后,您可以很好地为自己和其他需要帮助的人或需要稍后维护代码的人提高代码的可读性。
其次,我假设您在这里省略了绝大多数代码,并且缩进中的一些错误来自于粘贴到stackoverflow的问题。我已经修复了这些错误,但是如果你遗漏了与aws api进行交互的其他重要信息,那么在你发布代码并理想地完全回溯你的错误之前,没有人可以帮助你。
并非所有人都同意这一点,但除非您是正则表达专家,否则通常最好复制大师制作的正则表达式并彻底测试以验证它是否能产生您想要的结果,而不是自己制作。我在下面使用的正则表达式是从here复制的。我用一长串有效的电子邮件对其进行了测试,但其中没有一封电子邮件无法匹配。
Comparator