通过控制台从 aws 创建用户时。他们按照下面的屏幕截图使用了下面的正则表达式验证模式。
正则表达式模式
"^\+[1-9][0-9]{0,24}$"
但是当我用 python 尝试这个手机号码时,它是匹配的。但在控制台或api中它给出了一个名为无效手机号码的错误
样本手机号码+80570497
python脚本
>>> re.match(r"^\+[1-9][0-9]{0,24}$", "+80570497")
<re.Match object; span=(0, 9), match='+80570497'>
>>>
Cognito 说:
输入用户的电话号码,包括国家/地区代码。根据您的选择和用户池配置,电话号码不是必需属性。
您的电话号码中缺少国家/地区代码,您必须遵循 E.164 格式。例如,如果这是斯里兰卡的电话号码,则应写为 +9480570497,其中
94
是斯里兰卡的国家电话代码。
除了屏幕截图中的正则表达式之外,Cognito 似乎还进行了更多验证。例如以 +80、+21、+259 等开头的数字。 看起来它不允许任何当前未从此列表中分配的国家/地区代码https://en.wikipedia.org/wiki/List_of_country_calling_codes