Есть функция корявая для маски:
<ReduxFormMaskedField
name={`equity-${index}`}
mask={maskFraction}
/>
maskFraction = (value) => {
if (value.charAt(2) === '/') {
return [/\d/, /\d/, /\//, /\d/, /\d/];
}
if (value.charAt(1) === '/') {
return [/\d/, /\//, /\d/, /\d/];
}
if (value.charAt(1) !== '/') {
return [/\d/, /\d/, /\//, /\d/, /\d/];
}
return [/\d/, /\d|\//, /\d|\//, /\d/, /\d/];
}
Суть в чем, можно вводить только дроби, не более 99 по обе стороны от слеша.
Возможные примеры значений: 1/2, 1/25, 15/29
Как написать подобную функцию, но по-человечески? (при каждой проверке она должна возвращать массив с регулярным выражением для конкретного символа).
Единственное условие, которое не описано в функции - правая часть дроби не должна быть больше левой.