13.07.2009, 11:05
|
Новичок на форуме
|
|
Регистрация: 08.07.2009
Сообщений: 9
|
|
(JS) textarea
Добрый день,
Подскажите пожалуйста как при получении значения из поля textarea отловить все переводы строк.
т.е. мне нужно передать на сервер данные в виде 1 строки в которой все нажатия энтер переделаны в \r\n
|
|
13.07.2009, 13:43
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
Так?:
document.getElementById('myTexarea').value.split('\n').join('\\r\\n')
А собственно, зачем это надо, вроде бы и так все хорошо приходит?
|
|
14.07.2009, 20:37
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
e1f, не знаю, что отправляется под linux, но под windows отправляется как раз \r\n
Mila, нажатие Enter вставляет в строку перевод строки, так что суть вопроса не ясна
|
|
15.07.2009, 13:44
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
x-yuri, имеешь в виду, что надо так?
document.getElementById('myTexarea').value.split(/\r?\n|\r/).join('\\r\\n')
|
|
15.07.2009, 13:55
|
|
Рассеянный профессор
|
|
Регистрация: 06.04.2009
Сообщений: 2,379
|
|
Сообщение от e1f
|
document.getElementById('myTexarea').value.split(/\r?\n|\r/).join('\\r\\n')
|
а если пользователь напишет в texarea "\r\n" ?
|
|
15.07.2009, 14:32
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
тоесть? Два символа: '\'+'n' и один '\n' -- две большие разницы, емнип
|
|
15.07.2009, 14:42
|
|
Рассеянный профессор
|
|
Регистрация: 06.04.2009
Сообщений: 2,379
|
|
Пользователь наберет "\r\n", далее все переводы строки заменятся на тот же "\r\n" и как теперь различить на сервере, что набрал пользователь, а что добавлено скриптом?
|
|
15.07.2009, 14:44
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от e1f
|
x-yuri, имеешь в виду, что надо так?
|
я не знаю как нужно, я вообще не знаю, зачем это нужно. Я просто сказал, как оно под windows работает. Твой вариант под windows оставлял бы \r. А вообще я понял ТС так, что нужно чтобы было 2 символа (\r\n), а не четыре. Но вся эта тема как-то из пальца высосана. Надеюсь Mila меня в этом переубедит
|
|
15.07.2009, 16:27
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
Хм. У меня выходит так:
'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')
Последний раз редактировалось e1f, 15.07.2009 в 16:34.
|
|
15.07.2009, 18:10
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от e1f
|
Хм. У меня выходит так:
|
Я смотрел, что отправляется на сервер: нажимал Enter в textarea, отправлял форму и смотрел на строку адреса.
Сообщение от x-yuri
|
Твой вариант под windows оставлял бы \r
|
это про первый вариант (split('\n')). Под opera и ie (в отличие от ff) переводы строки в javascript видны как \r\n
|
|
|
|