这是我尝试过的众多检查表达之一:
(url::text ~* 'https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,255}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)'::text)
哪个行不通。
然而奇怪的是(对于电子邮件验证):
(email::text ~* '^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+[.][A-Za-z]+$'::text)
我不确定这两种支票表达方式之间的区别是什么,虽然我很想知道。
那么如何通过Postgres中的检查约束验证网址?
答案 0 :(得分:0)
在问题下方的注释帮助下,我已修复了用于URL验证的表达式。 因此,仅用于共享:
(website :: text ~* 'https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,255}\.[a-z]{2,9}\y([-a-zA-Z0-9@:%_\+.~#?&//=]*)$' :: text)