Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   (JS) textarea (https://javascript.ru/forum/misc/4342-js-textarea.html)

Mila 13.07.2009 11:05

(JS) textarea
 
Добрый день,
Подскажите пожалуйста как при получении значения из поля textarea отловить все переводы строк.
т.е. мне нужно передать на сервер данные в виде 1 строки в которой все нажатия энтер переделаны в \r\n

e1f 13.07.2009 13:43

Так?:
document.getElementById('myTexarea').value.split('\n').join('\\r\\n')

А собственно, зачем это надо, вроде бы и так все хорошо приходит? :)

x-yuri 14.07.2009 20:37

e1f, не знаю, что отправляется под linux, но под windows отправляется как раз \r\n

Mila, нажатие Enter вставляет в строку перевод строки, так что суть вопроса не ясна

e1f 15.07.2009 13:44

x-yuri, имеешь в виду, что надо так?
document.getElementById('myTexarea').value.split(/\r?\n|\r/).join('\\r\\n')

Riim 15.07.2009 13:55

Цитата:

Сообщение от e1f
document.getElementById('myTexarea').value.split(/\r?\n|\r/).join('\\r\\n')

а если пользователь напишет в texarea "\r\n" ?

e1f 15.07.2009 14:32

тоесть? Два символа: '\'+'n' и один '\n' -- две большие разницы, емнип :)

Riim 15.07.2009 14:42

Пользователь наберет "\r\n", далее все переводы строки заменятся на тот же "\r\n" и как теперь различить на сервере, что набрал пользователь, а что добавлено скриптом?

x-yuri 15.07.2009 14:44

Цитата:

Сообщение от e1f
x-yuri, имеешь в виду, что надо так?

я не знаю как нужно, я вообще не знаю, зачем это нужно. Я просто сказал, как оно под windows работает. Твой вариант под windows оставлял бы \r. А вообще я понял ТС так, что нужно чтобы было 2 символа (\r\n), а не четыре. Но вся эта тема как-то из пальца высосана. Надеюсь Mila меня в этом переубедит :yes:

e1f 15.07.2009 16:27

Хм. У меня выходит так:
'a\r\nb'.split(/(\r?\n|\r)/) == ["a", "\r\n", "b"];
'a\r\rb'.split(/(\r?\n|\r)/) == ["a", "\r", "", "\r", "b"];
'a\nb'.split(/(\r?\n|\r)/) == ["a", "\n", "b"];


UPD: И все-таки чего-то я не понимаю: что все же нужно -- заменить все переводы строк на Win-style? Вроде бы вот так работает (c Win/Linux/Mac переводами строк):
str.split(/(\r?\n|\r)/).join('\r\n')

x-yuri 15.07.2009 18:10

Цитата:

Сообщение от e1f
Хм. У меня выходит так:

Я смотрел, что отправляется на сервер: нажимал Enter в textarea, отправлял форму и смотрел на строку адреса.

Цитата:

Сообщение от x-yuri
Твой вариант под windows оставлял бы \r

это про первый вариант (split('\n')). Под opera и ie (в отличие от ff) переводы строки в javascript видны как \r\n


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