1

为什么这个正则表达式应该匹配但它失败了?

错误

child "color" fails because ["color" with value "#333acf " fails to match the required pattern: /^#[A-Fa-f0-9]{6}$/]

  validate: {
        payload:{
            avatar: joi.object().keys({
              color: joi.string().regex(/^#[A-Fa-f0-9]{6}$/),
              icon: joi.string().min(2)
          })
        }
    }

有效载荷

{
    "avatar": {color:"#333acf ",icon:"b1"}
}
4

1 回答 1

2

您的颜色字​​符串末尾有一个额外的空间。应该

{
    "avatar": {color:"#333acf",icon:"b1"}
}

或者您的正则表达式需要通过删除字符串锚点的结尾来允许长度超过 6 个字符的字符串。

/^#[A-Fa-f0-9]{6}/
于 2015-03-16T15:36:14.180 回答