一尘不染

Mongoose-验证电子邮件语法

node.js

我有一个用于用户的Mongoose模式(UserSchema),我想验证电子邮件是否具有正确的语法。我当前使用的验证如下:

UserSchema.path('email').validate(function (email) {
  return email.length
}, 'The e-mail field cannot be empty.')

但是,这仅检查字段是否为空,而不检查语法。

是否已经存在一些我可以重用的东西,或者我必须提出自己的方法并在validate函数中调用它?


阅读 210

收藏
2020-07-07

共1个答案

一尘不染

您可以使用正则表达式。

我过去曾经使用过。

UserSchema.path('email').validate(function (email) {
   var emailRegex = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
   return emailRegex.test(email.text); // Assuming email has a text attribute
}, 'The e-mail field cannot be empty.')
2020-07-07