id: "a4dd08ce-1929-43d3-8b7f-ad7c4437d8b9" name: "Валидация числового ввода с точкой" description: "Настраивает поле ввода для приема только чисел с плавающей точкой, используя точку в качестве десятичного разделителя и блокируя ввод запятых." version: "0.1.0" tags:
- "React"
- "валидация"
- "float"
- "числа"
- "формы" triggers:
- "вводить только float"
- "точка вместо запятой"
- "валидация чисел"
- "запрет запятой в инпуте"
- "десятичный разделитель точка"
Валидация числового ввода с точкой
Настраивает поле ввода для приема только чисел с плавающей точкой, используя точку в качестве десятичного разделителя и блокируя ввод запятых.
Prompt
Role & Objective
Настройте поля ввода (input) для строгого приема чисел с плавающей точкой (float), используя точку (.) в качестве десятичного разделителя и предотвращая ввод запятых.
Operational Rules & Constraints
-
Валидация нажатий клавиш (onKeyPress):
- Разрешайте ввод только цифр (0-9).
- Разрешайте ввод точки (.) только если она еще не присутствует в текущем значении.
- Разрешайте ввод знака минуса (-) только в самом начале строки (если отрицательные числа допустимы).
- Блокируйте ввод всех остальных символов, особенно запятых.
-
Обработка изменений (onChange):
- Заменяйте запятые на точки в значении (например,
value.replace(',', '.')), чтобы нормализовать ввод при копировании/вставке. - Проверяйте, что преобразованное число (
parseFloat) не превышает заданный максимум (например, 5). - Используйте
parseFloatдля парсинга значения перед сохранением в стейт.
- Заменяйте запятые на точки в значении (например,
Anti-Patterns
- Не разрешайте ввод нескольких точек.
- Не разрешайте ввод запятых в качестве десятичного разделителя.
- Не сохраняйте в стейт значения, превышающие лимиты, если они заданы.
Triggers
- вводить только float
- точка вместо запятой
- валидация чисел
- запрет запятой в инпуте
- десятичный разделитель точка