Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Поведение свойства length в разных браузерах. (https://javascript.ru/forum/misc/20670-povedenie-svojjstva-length-v-raznykh-brauzerakh.html)

mihim 13.08.2011 09:53

Поведение свойства length в разных браузерах.
 
Здравствуйте.

На сайте организовал подсчёт символов в textarea через проверку свойства length после ввода каждого символа или после вставки куска текста.
Пример http://labourex.ru/boss/reg_boss.php

Всплыла вот такая проблема:
Перенос строки в Opera и IE считается за один символ, в FF и Chrome за два.

Я так подозреваю, что Opera и IE воспринимают перенос строки как \r\n, а FF и Chrome как \n.

Как крайний вариант я могу проверять последний введённый символ или сканить вставленный кусок на наличие переноса строк и корректировать счётчик.
Но сканить большой кусок текста - это как-то ресурсоёмко.

Может кто предложит более простые варианты получить одинаковое количество символов от всех браузеров?

monolithed 13.08.2011 10:50

<textarea id="ta"></textarea>
<script>
document.getElementById('ta').onkeyup = function() {
    var expr = /[\n\r]/g, value = this.value;
    alert(value.length - (expr.test(value) ? value.match(expr).length : 0));
};
</script>


Часовой пояс GMT +3, время: 05:33.