![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Innuendo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: 2 Всего: 6 |
У меня вот такая проблема.
Мне нужно сохранить введеный в текстареу текст в переменную стринговую. Но так сохранить, чтоб потом при выводе знаки перехода сохранялись. Как в текстареии убрать все переходы строки и вместо них поставить \n - ну чтоб это было стринг в 1 строку, с вот такими переходами строк. И так же нужно будет сделать обратную функцию. т.е. из переменной текст переходит в текстареу и все ентеры (в виде символов \n или ещё как-то) превратятся в настроящие ентеры =) -------------------- =) |
|||
|
||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
В строке без проблем сохраняются переводы строк. Это нужно только при генерации строки в HTML-коде.
s.replace(/\r?\n/g,"\\n") Обратно - s.replace(/\\n\g,"\n") |
|||
|
||||
| Innuendo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: 2 Всего: 6 |
спасибо конечно, но, честно не совсем понял как расшиврофать этот reg exp... А хотелось бы, не люблю тупо копировать что-то...
и во-втором реге, разве перед g должен быть не в другую сторону слэш? -------------------- =) |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
\r?\n - не обязательный \r и затем \n, под *nix и win, но не под старый мак, там только \r
g - модификатор глобального рега, не остановиться найдя первое совпадение В "Обратно" ошибка, \g заменяем на /g. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Innuendo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: 2 Всего: 6 |
значит я прально заметил =)
спасибо, а то не понимал что такое глобальный рег =) спасибо, вроде понял. -------------------- =) |
|||
|
||||
| Innuendo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: 2 Всего: 6 |
а вот такая проблема:
для теста сделал 1 текстареа и 1 див. Надо чтоб при клике на текстарею её содержимое перешло в див. Чтоб переходы сохранились:
завожу пару строк в текстарею, кликаю по ней, и в диве отображаются вместо ентеров просто /n... почему не конвертируется? Добавлено @ 12:46 вообще-то.. мне вот что надо сделать: Пользователь вводит текст в текстарею. Скрипт переводит строку в уникод, и конвертируют переходы (чтоб они сохранились). Хранит эту строку в переменной. Потом при вызове её он просто получает в другой текстареи то что он ввёл но уже переведенное обратно на русский, и с переходами. Сейчас пока-что у меня все мои строки хранятся в массиве, и они там уже так и хранятся в уникоде, и с \n вместо ентеров. Но во-первых это придаёт громоздкость файлу, а во-вторых то, что я делаю как раз и надо чтоб пользователь мог сам заносить новые строки. -------------------- =) |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Не /n, a \n. Ты этого и хотел, заменить все вхождения символов \n на строки "\n", т.е. получаеться одна большая строка. Её ты вставляешь в div, в чём проблема? Если хочешь что бы и в диве переводы строк отображались "правильно", то заменяй на "<br />\n".
Как понять сохранились? Кто/что убивает символы перевода строки? Что пишем, не интерактивный транслит? -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Innuendo |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: 2 Всего: 6 |
неа =) Пишем быстрые ответы на письма. Т.е. ответы по шаблонам. Есть выпадающий список, там название шаблонов, я выбираю один и ответ вставляются в текстарею. Но мне часто надо редактировать шаблоны, поэтому надо всё время редактировать сам .js файл и в нём масссив, а потом и выпадающий список редактировать, и так как у меня это xul приложение, то надо заново паковать, и инсталлировать. Поэтому решил вот написать редактор шаблонов: Текстареа, панель кнопкочек. Пользователь вводит в текстарею сообщение, оно перводится в уникод, сохраняются пеерходы строг и загоняется в стринг. Стринг загоняется в xml-структуру, которая сохраняется в префах, и из неё можно загружать шаблоны. да, сорри, опечатался.
А... с дивом понятно. но мне вообще-то надо чтоб он вставлял потом в текстарею... Я щас подредактировал скрипт... Если я вставляю в текстару просто скопированный текст, то он вставляется с переходами как следует, а еслия преобрузую через replace, то выводится в одну строку с /n Странно, тогда получается мне вообще не надо ничего преобразовать с этими переходами? Чё-то я запутался... Вот посмотрите тестовый пример:
Добавлено @ 16:08 В этом примере. Ввожу в текстарею 2 строки: Test1 и Test2 (через Ентер) В ответах получаю:
Я вот что не пойму, если он во-втором случае преобразовал строку и строка была "Test1\nTest2", то почемув строке "Line1\nLine2", которую я сам создал он поставил ентер? -------------------- =) |
||||||
|
|||||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Потому что \n в строке заменяеться на символ перевода строки, как в C, Java, C# и т.д. В исходниках имею в виду, это выполняеться парсером. \n в коде (обязан записать как "\\n", т.е. экранируем \ символ) принимаеться как текст, в JS строки вообще не имеют скрытых фильтров. Innuendo, я всё понял, решение: ничего не делай -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Innuendo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: 2 Всего: 6 |
ааа, блин у нас же : s1.replace(/\r?\n/g,"\\n"); там 2 слэша, первый означает что воспринимать литерально... Точно, вот что значит плохо знать reg Exp =( ок =)
да я так решил потому что я же сначала шаблоны забивал в строки сам. Они у меня вообще когда не было программы и отвечал на письма вручную, были просто в блокнотике. Когда решил сделать "отвечалку", стал заносить их в массив, и там строка обрывалась на ентере, и я все ентеры поменял на \n =) Ладно, ок.. думаю если я ничего не буду делать с этими переходами, то всё будет ОК =) Это сообщение отредактировал(а) Innuendo - 16.8.2006, 20:20 -------------------- =) |
|||
|
||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
||||
|
||||
| Innuendo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: 2 Всего: 6 |
да, не заметил =)
-------------------- =) |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |