Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Переводы строк в textarea на разных платформах (https://javascript.ru/forum/dom-window/22097-perevody-strok-v-textarea-na-raznykh-platformakh.html)

GRIG 06.10.2011 12:24

Переводы строк в textarea на разных платформах
 
Ситуация такая. Есть служебная интранет-система. В ней есть моя страница со скриптом, которая запрашивает данные у пользователя. В частности, пользователь может в некоторое поле типа textarea ввести несколько сходных по смыслу значений по 1 значению на строке. Далее с результатом ввода я делаю примерно следующее:
var values_array = textarea_text.split( '\n' );
  for( i = 0; i < values_array.length; i++ )
  {
    if( ! checking_regexp.test( values_array[i] ) )
    {
      alert( 'Фигню ты ввел, дорогой товарищ' );
      return;
    }
// И тут что-то еще существенное.
  }

Прикол в том, что отладку скрипта я вел на Linux + Mozilla Firefox 3.6.23 - и все нормально работало и по-прежнему работает. А у пользователя, который сидит на виндах, это вдруг недавно работать отказалось (хотя там стоит та же самая Mozilla Firefox 3.6.23). :blink: Особый прикол в том, что пользователь до того пользовался этим скриптом 2 месяца и проблем такого рода раньше не испытывал. :blink:
Проход скрипта пошагово под FireBug'ом выявил, что проблема в том, что вызов split('\n') в виндовом броузере оставляет на конце первой строки символ '\r', из-за которого сопоставление с регулярным выражением заканчивается неудачей.
Кто-нибудь может мне внятно объяснить, с чего это вдруг начались такие проблемы? И как с этим можно бороться?

Kolyaj 06.10.2011 12:26

Во-первых, .split(/\r?\n/).
Во-вторых, в любом случае желательно удалять пробелы в начале и в конце каждой строки.

GRIG 06.10.2011 12:41

Спасибо.
Только все равно остается непонятным почему раньше все работало прекрасно, а потом перестало. При том, что скрипт не менялся.


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