如何创建约束来检查电子邮件在 postgres 中是否有效?
如何创建约束以在 postgres 中使用正则表达式?
How can I create a constraint to use a regular expression in postgres?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何创建约束以在 postgres 中使用正则表达式?
How can I create a constraint to use a regular expression in postgres?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
(正则表达式可能不完整,您可以在网上搜索电子邮件匹配的正则表达式并选择您最喜欢的)。
(regex may be incomplete, you can search for regexp for email matching all over the web and pick the one you like best).
我建议使用现有的电子邮件地址解析模块,而不是构建自己的模式匹配。例如:
I recommend using an existing email address parsing module instead of making up your own pattern matching. For example:
您还可以创建一个 domain 并将其用作类型定义表列,例如,
这样您就不需要每次在数据库中使用包含列的电子邮件时重新定义正则表达式。
You can also create a domain and use it as a type when defining table columns, e.g.
This way you will not need to redefine the regex every time an email containing columns is used in the database.
更好的模式,取自 OWASP regexp 验证库:
https://owasp.org/www-community/OWASP_Validation_Regex_Repository 是:
但这是相当有限的。它不支持评论或引用的名称,也不支持向有效的 IP 地址(例如 name@[10.99.22.4])发送电子邮件。 UUCP 电子邮件地址和许多其他地址也有效。
https://emailregex.com/ 建议使用以下正则表达式:
虽然我注意到没有锚点 (^$)这。
A better pattern, taken from the OWASP regexp validation library at
https://owasp.org/www-community/OWASP_Validation_Regex_Repository is :
But this is quite limiting. It does not support comments or quoted names, nor does it support email to an IP address such as name@[10.99.22.4] which is valid. Also valid are UUCP email addresses and a host of others.
https://emailregex.com/ Suggest the following regexp:
Though I notice there are no anchors (^$) for this.