如何规范输入的电子邮件?

How to normalize the input email?

我在使用 express-validator 时遇到我在注册时使用标准化电子邮件来验证电子邮件,所以我将标准化电子邮件存储到服务器。

验证码:

router.post(
  "/signup",
  [
    check("name").not().isEmpty(),
    check("email").normalizeEmail().isEmail(),
    check("password").isLength({ min: 6, max: 15 }),
  ],
  userController.signupUser
);

输入邮箱:abc.123@mail.com

标准化电子邮件:abc123@gmail.com(存储在数据库中)

现在的问题是在登录时输入的电子邮件不匹配并显示无效凭据。

您不能删除任何 . or _,因为它是用户电子邮件的一部分。

Here 和验证电子邮件地址的示例

经过研究和观察,我发现注册时使用的代码可以在登录时用于规范电子邮件,我只需要添加:

 router.post("/login",[check('email').normalizeEmail()], userController.loginUser);

添加电子邮件后,电子邮件将转换为规范化电子邮件,可以直接从请求中使用。

你只需要在 normalizeEmail ():

中传递选项
normalizeEmail ({"gmail_remove_dots": false "})