fix: answer range format validation in numerical input problems (#2426)

This commit is contained in:
Ihor Romaniuk
2025-10-15 20:33:31 +02:00
committed by GitHub
parent 411d4f053c
commit 4a26a86c90
6 changed files with 202 additions and 12 deletions

View File

@@ -407,23 +407,21 @@ class ReactStateOLXParser {
let lowerBoundFraction;
let upperBoundInt;
let upperBoundFraction;
if (rawLowerBound.includes('/')) {
if (rawLowerBound?.includes('/')) {
lowerBoundFraction = rawLowerBound.replace(/[^0-9-/]/gm, '');
const [numerator, denominator] = lowerBoundFraction.split('/');
const lowerBoundFloat = Number(numerator) / Number(denominator);
lowerBoundInt = lowerBoundFloat;
lowerBoundInt = Number(numerator) / Number(denominator);
} else {
// these regex replaces remove everything that is not a decimal or positive/negative numer
lowerBoundInt = Number(rawLowerBound.replace(/[^0-9-.]/gm, ''));
// these regex replaces remove everything that is not a decimal or positive/negative number
lowerBoundInt = Number(rawLowerBound?.replace(/[^0-9-.]/gm, ''));
}
if (rawUpperBound.includes('/')) {
if (rawUpperBound?.includes('/')) {
upperBoundFraction = rawUpperBound.replace(/[^0-9-/]/gm, '');
const [numerator, denominator] = upperBoundFraction.split('/');
const upperBoundFloat = Number(numerator) / Number(denominator);
upperBoundInt = upperBoundFloat;
upperBoundInt = Number(numerator) / Number(denominator);
} else {
// these regex replaces remove everything that is not a decimal or positive/negative numer
upperBoundInt = Number(rawUpperBound.replace(/[^0-9-.]/gm, ''));
// these regex replaces remove everything that is not a decimal or positive/negative number
upperBoundInt = Number(rawUpperBound?.replace(/[^0-9-.]/gm, ''));
}
if (lowerBoundInt > upperBoundInt) {
const lowerBoundChar = rawUpperBound[rawUpperBound.length - 1] === ']' ? '[' : '(';