Вывод количества оставшихся для ввода символов

170
17 июля 2021, 14:00

Дано 160 символов. Если писать кириллицей - 70, а латиницей 160. Понял что это значение лучше сделать 140 если присутствуют помимо русских и другие (русские = 2 байта). Повесил на input событие onkeypress с функцией:

function textCounter(input,ruOut,enOut){
    var ruOut = document.getElementById(ruOut);
    var enOut = document.getElementById(enOut);
    var allChars = 140;
    var ruCode = 70;
    var enCode = 160;
    var ruChars = 0;
    var inputLength = input.value.length;
        for(var i = 0; i < input.value.length; i++) {
            if (/[А-ЯЁа-яё]/.test(input.value[i])) {
                ++ruChars;
            }
        }
        if(inputLength === 0){
            ruOut.innerText = 70;
            enOut.innerText = 160;
        }
        if(inputLength === ruChars && ruChars > 0){
            ruOut.innerText = ruCode - ruChars;
            enOut.innerText = allChars - (ruChars * 2);
        }else if(input.value.length !== 0 && ruChars === 0){
            enOut.innerText = enCode - inputLength;
            ruOut.innerText = (allChars - inputLength) / 2;
        }else{
            ruOut.innerText = (allChars - (inputLength + (ruChars * 2)))/2;
            enOut.innerText = allChars - (ruChars * 2);
        }
}

Так вот, при вводе первого символа русского он не пропускается через цикл и выдает что русских 0. Дальше ввод идет нормально. Также есть проблема с тем, что если сначала начать вводить русскими, потом перейти на английски он также не всегда подхватывает. Поле ru меняется а en нет в чем может быть проблема?

READ ALSO
Проверка select на выбраное значение js

Проверка select на выбраное значение js

Задача чтобы при blur, если выбрано значение в селекте, он подсвечивался зелёным, если стоит не указано подсвечивался краснымУ меня сейчас...

216
CSS filter drop-shadow SVG polygon

CSS filter drop-shadow SVG polygon

Я могу добавить тень кругу или квадрату

215
Fixed против Sticky

Fixed против Sticky

Структура кода на сайте сейчас выглядит так:

258
Использования кэш памяти в объектно ориентированном и процедурном программировании

Использования кэш памяти в объектно ориентированном и процедурном программировании

Какая разница между OOP & Procedural подходами в рамках кэш память(процес использования памяти, загрузка

216