#javascript #reactjs #regex #formik #formik-material-ui
Вопрос:
У меня есть ввод, который не может содержать более 2 знаков после запятой. Также у меня есть проверка, которая не работает должным образом для чисел с большим количеством нулей.
export default function App() {
const isValidAmount = (amount) => /^$|^d .?d{0,2}$/.test(String(amount));
return (
<div>
<Formik initialValues={{ decimalNumber: "" }}>
{({ handleChange }) => (
<Field
className="input"
type="number"
name="decimalNumber"
placeholder="Decimal Number"
component={TextField}
InputProps={{
onChange: (e) => {
if (!isValidAmount(e.target.value)) return;
handleChange(e);
}
}}
/>
)}
</Formik>
</div>
);
}
Не могли бы вы объяснить: что происходит?
Ответ №1:
Используйте атрибут HTML step
для ограничения допустимых чисел. В этом случае вы хотите ограничить сотые доли:
<Field
/* ... */
step="0.01"
/>
Комментарии:
1. Я попробовал. Это тоже не работает. Спасибо за ответ.