Formik中number类型Input处理异常,正则校验多零值两位小数失效
问题原因
- 输入框类型导致值格式异常:你给输入框设置了
type="number",当输入的整数值过大(比如连续输入大量0触发超长整数场景)时,浏览器会自动把e.target.value的返回值转换为科学计数法格式,比如输入1后接20个0,最终拿到的值会是1e+20,而非你预期的纯数字字符串。 - 正则规则不兼容科学计数法:你编写的校验正则
/^$|^\d+\.?\d{0,2}$/仅支持匹配空值、纯整数、或者带最多两位小数的数值字符串,无法匹配带e字符的科学计数法格式,因此会将这类本来符合「最多两位小数」要求的大整数判定为非法,触发拦截逻辑。
内容的提问来源于stack exchange,提问作者dsrtf0x
相关产品推荐
相关产品推荐

