在mongo模式中限制数字

时间:2018-10-07 20:46:37

标签: validation mongoose mongoose-populate

我的猫鼬模型中有一个“到期”字段,用于支付帐单。该字段代表一个月中的某一天,是1到31之间的数字。

如何更改此验证,以防止接受大于31的数字?

due: {
    type: Number,
    required: true,
    validate: {
      validator: function (v) {
        return /^(3[01]|[12][0-9]|[1-9])/.test(v)
      },
      message: props => `$(props.value) is not a valid calendar day`
    }
  }

1 个答案:

答案 0 :(得分:1)

您的regex无效。如果您输入33,它仍然会与前3等匹配。

尝试:/(1|2)([0-9])|(3)(0|1)|^([0-9]){1}$/.test(v)

due: {
    type: Number,
    required: true,
    validate: {
      validator: function (v) {
        return /(1|2)([0-9])|(3)(0|1)|^([0-9]){1}$/.test(v)
      },
      message: props => `$(props.value) is not a valid calendar day`
    }
  }

您可以test the regEx here并同时查看详细说明。