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 标准所支持的。
/^(?! )(?=.*[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 标准所支持的。