限制 mongo 模式中的数字

Restricting numbers in mongo schema

我的猫鼬账单模型中有一个 "due" 字段。该字段代表一个月中的某一天,一个从 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`
    }
  }

您的 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也可以看到详细的解释。