Joi - 无效的正则表达式

Joi - Invalid Regular Expression

/^(?! )(?=.*[a-z])(?=.*[A-Z])(?=.*\d)([a-zA-Z\d!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ ]{8,})(?<! )$/

在 regex101.com、chrome 控制台中完美运行,甚至可以加入 npm runkit。但是当在代码中使用时,Joi 给出错误为 -

SyntaxError: Invalid regular expression: {above regex}: Invalid Group

你能帮我解决这个问题吗?

请注意,不支持 ECMAScript 2018 的浏览器不支持正则表达式中的回顾。

您的模式包含 (?<! ) 否定后视,检查字符串末尾是否没有 space(它位于 $ 锚点之前)。

因此,您可以通过用 (?=.*\S$)(字符串末尾需要非白色 space 字符)或 (?!.*\s$)(不允许白色space 在字符串的末尾) lookaheads 是流行的 ES5 标准所支持的。