Дано 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 нет в чем может быть проблема?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Задача чтобы при blur, если выбрано значение в селекте, он подсвечивался зелёным, если стоит не указано подсвечивался краснымУ меня сейчас...
Какая разница между OOP & Procedural подходами в рамках кэш память(процес использования памяти, загрузка