我有一个供用户使用的 Mongoose 模式 (UserSchema),我想验证电子邮件是否具有正确的语法。我目前使用的验证如下:
UserSchema.path('email').validate(function (email) {
return email.length
}, 'The e-mail field cannot be empty.')
但是,这只检查字段是否为空,而不检查语法。
是否已经存在我可以重复使用的东西,或者我必须想出自己的方法并在 validate 函数中调用它?
最佳答案
您还可以使用 match 或 validate 属性在架构中进行验证
例子
var validateEmail = function(email) {
var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
return re.test(email)
};
var EmailSchema = new Schema({
email: {
type: String,
trim: true,
lowercase: true,
unique: true,
required: 'Email address is required',
validate: [validateEmail, 'Please fill a valid email address'],
match: [/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/, 'Please fill a valid email address']
}
});
关于node.js - Mongoose - 验证电子邮件语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18022365/