`isFloat` 为未知区域建立一个字面量 `undefined` 分隔符
作者: uhop创建于 2026年8月23日更新于 2026年8月23日
标签🐛 bug
描述错误
isFloat 将本地分隔符直接插入到新的正则表达式中:
const float = new RegExp(`^(?:[-+])?(?:[0-9]+)?(?:\\${options.locale ? decimal[options.locale] : '.'}[0-9]*)?...`);当 options.locale 不是 decimal 的一个键时,查找结果为 undefined,该字符串会被转换为模式中的文本字面值 undefined。前面的 \ 产生了 \\undefined,由于 \\u 后面没有四个十六进制数字,所以在非 Unicode 模式下,转义会降级为一个字面值 u。编译后的分隔符因此是长度为 8 的字符串 undefined。
内容来源: validatorjs/validator.js