gpt4 book ai didi

regex - Mongoose 验证 : required : false, 验证 : regex, 问题与空值

转载 作者:可可西里 更新时间:2023-11-01 09:12:25 28 4
gpt4 key购买 nike

我从 Mongoose 验证中得到这条消息:

'Validator failed for path phone with value ``'

这不应该发生,因为不需要电话。

这是我的模型架构:

var user = new Schema(
{
_id : { type: String, required: true },
name : { type: String, required: true},
phone : { type: String, required: false, validate: /^\d{10}$/ },
password : { type: String },
added : { type: Date, default: Date.now },
},
{collection : 'users'}
);

当我使用 required: false 并设置验证属性时, Mongoose 的验证似乎失败了。如果我将其更改为:

phone    : { type: String, required: false},

一切正常,这是为什么呢?我做错了什么?

最佳答案

您可以简单地检查输入的值是否存在(不为空或未定义)。如果存在,则测试正则表达式:

var user = new Schema(
{
_id : { type: String, required: true },
name : { type: String, required: true},
phone : { type: String,/*not required by default**/
validate: {
validator: function(v) {
var re = /^\d{10}$/;
return (!v || !v.trim().length) || re.test(v)
},
message: 'Provided phone number is invalid.'
}
},
password : { type: String },
added : { type: Date, default: Date.now },
},
{collection : 'users'}
);

关于regex - Mongoose 验证 : required : false, 验证 : regex, 问题与空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21842694/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com