即使对于不匹配的字符串,针对正则表达式的 JOI 验证也会通过

问题描述

我正在使用下面代码中描述的 joi

import joi from 'joi';

const STRING_ENGLISH_araBIC_125 = joi
  .alternatives([
    joi.string().pattern(/^[\u0621-\u064A\u0660-\u0669a-zA-Z0-9 -.,()_]+$/),joi.number(),])
  .allow('');

const body = joi.object().keys({
  InterfaceId: STRING_ENGLISH_araBIC_125,Entity: STRING_ENGLISH_araBIC_125,});

我需要使用 joi 而不是 hapi/joi 作为我的客户要求,我的期望是允许的值只有阿拉伯语和英语字母、数字和一些不包括 的特殊字符,例如,但是当我我试图用包含 的值调用相同的 api,因为我希望它们失败,它们通过了。我已经使用 https://regex101.com/ 验证了我的正则表达式,并且它按我的预期工作。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)