用于正则表达式检查的短postgres函数

时间:2017-07-11 09:42:42

标签: postgresql

下面的定义似乎很重要。这可以写得更简洁吗?

CREATE OR REPLACE FUNCTION "check_email"(email TEXT)
  RETURNS BOOLEAN AS $$
BEGIN
  RETURN email ~* '^[A-Za-z0-9._%+$-]+@[a-zA-Z0-9-]+([.][A-Za-z0-9-]+)+$';
END;
$$ LANGUAGE plpgsql;

我对缩短正则表达式没有兴趣,只是定义样板文件。

1 个答案:

答案 0 :(得分:1)

您可以使用SQL而不是PLPGSQL语言:

CREATE FUNCTION check_email(text)
RETURNS boolean AS $$
    SELECT $1 ~* '^[A-Za-z0-9._%+$-]+@[a-zA-Z0-9-]+([.][A-Za-z0-9-]+)+$';
$$ LANGUAGE sql;