我正在使用MUI TextField。我的任务是只对数字进行验证,这些eE+-键将不被接受。我想使用onChange为此创建一个标准组件。如果用户输入这个键eE+-,我想处理这个。我需要抛出一个无效的错误,我尝试了一些想要的,但不能正常工作,因为对于一个数字,这个字段将被认为是未定义的,我也不希望用户从关键字限制,因为在某些情况下也是有效的。
this is valid
+1
-1
1e1
this blow is invalid
e
1-
1+
12e
const NumberField = ({ ...props }) => {
return (
<TextField
{...props}
type="number"
// inputProps={{ inputMode: 'numeric', pattern: '/^(0|[1-9]d*)$/' }}
onChange={(e) => {
if (e.target.value === '' || !/[eE+-]/.test(e.target.value)) {
props.onChange(e);
} else {
return false;
}
}}
error={props.errorMsg}
/>
);
};
1条答案
按热度按时间xesrikrc1#
让你的可重用的数字textField像这样:
并将enNumberConvertor函数传递给onKeyPress
这也是十进制和十进制正数的正则表达式