Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 19.05.2015, 00:19
Кандидат Javascript-наук
Отправить личное сообщение для rafaello Посмотреть профиль Найти все сообщения от rafaello
 
Регистрация: 09.11.2012
Сообщений: 100

Я попробовал в песочнице, и получается так, что если убрать второй <textarea name="" rows="10" cols="80"></textarea>
то ничего и не получается....
Сейчас попытаюсь объяснить суть самой задачи.
Есть два textarea с разными Ай-ди. В первом находится текст в виде html кода.
За одно действие (один клик) надо вытащить тот текст из первого textarea, очистить от html тегов, в каждой строке убрать пробелы и вставить во второй textarea.
Вся эта функция уже написана, но в ней не хватает момента очистки от пробелов.
Поэтому, используя вариант профессора Рони, я не смогу сделать того, что мне надо.
Хотя и свой первоначальный вариант я додумал. Плохо ли хорошо, но он работает.
Было
var arr = text.split("\n");
var index;
var ddrr = '';
for (index = 0; index < arr.length; ++index) {
    ddrr = $.trim(arr[index]) + "\n";
	ddrr = ddrr + ddrr;
}

Стало
var arr = text.split("\n");
var index;
var ddrr = '';
for (index = 0; index < arr.length; ++index) {
    ddrr = ddrr + $.trim(arr[index]) + "\n";
}
Ответить с цитированием
  #12 (permalink)  
Старый 19.05.2015, 00:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

rafaello,
а чем неустроило
var ddrr = text.replace(/^\s+|\s+(?=[\n\r])/gm,"")
?
Ответить с цитированием
  #13 (permalink)  
Старый 19.05.2015, 03:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от rafaello
надо вытащить тот текст из первого textarea, очистить от html тегов, в каждой строке убрать пробелы и вставить во второй textarea.
Вопрос - а зачем вставлять во вторую текстовую область и даже зачем вообще нужна вторая текстовая область, если только не для того, чтобы это в конечном итоге не отправить на сервер?
Ответить с цитированием
  #14 (permalink)  
Старый 19.05.2015, 05:27
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от rafaello
За одно действие (один клик) надо вытащить тот текст из первого textarea, очистить от html тегов, в каждой строке убрать пробелы и вставить во второй textarea.
И нафига козе баян из циклов и прочей тряхомудии? Потому что сами написали и полюбили?

Избавиться от тегов можно двояковыпукло: или засадив хтмл в дом и достав оттуда textContent (innerText) - что небезопасно если нет гарантий чистоты хтмля; или регой, или скачать готовую функцию strip_tags() и все такое.

http://phpjs.org/functions/strip_tags/

а тут та самая рега в 1 строку

https://css-tricks.com/snippets/java...in-javascript/
Ответить с цитированием
  #15 (permalink)  
Старый 19.05.2015, 05:32
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Проблема с функциями в том, что специальные символы не конвертятся. Например там написано &hellip; - ну так и получите в тексте, вместо ...

Поэтому бестовым способом является компиляция в дом и забор оттуда текста как текста. Но если в хтмле будет скрипт, он сработает.

Чтобы конвертировать туда-сюда функциями, я укоротил список ентитек функции html_entity_decode до практического минимума и засунул в свою либу, вот так:

var html_entity_decode=function(str) {
	var m={"194":"&iquest;","195":"&yuml;","197":"&Yuml;","198":"&fnof;","203":"&tilde;","206":"&omicron;","207":"&piv;","226":"&diams;","38":"&amp;","34":"&quot;","39":"&#039;","60":"&lt;","62":"&gt;"},d=0;
	for(d in m)
		str=str.split(m[d]).join(String.fromCharCode(d));
	return str;
};
Ответить с цитированием
  #16 (permalink)  
Старый 19.05.2015, 07:06
Кандидат Javascript-наук
Отправить личное сообщение для rafaello Посмотреть профиль Найти все сообщения от rafaello
 
Регистрация: 09.11.2012
Сообщений: 100

Цитата:
если только не для того, чтобы это в конечном итоге не отправить на сервер?
Именно для этого это и надо
Цитата:
а чем неустроило
var ddrr = text.replace(/^\s+|\s+(?=[\n\r])/gm,"")
Отчего же, это как раз и устраивает!
Всем спасибо!
Ответить с цитированием
  #17 (permalink)  
Старый 19.05.2015, 11:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от rafaello
Именно для этого это и надо
Ну и почему не "если бы это было на РНР, я бы его заразу в два счета уделал"?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт выделяющий слова в тексте. Что я делаю не так Aleksey140569 Общие вопросы Javascript 7 23.05.2017 14:37
Помогите убрать отступ в нижней части сайта Georka Элементы интерфейса 0 25.10.2014 09:25
Длина строки в многострочном тексте Rembrant Элементы интерфейса 8 29.11.2011 13:56
Поиск в тексте javascript jQuery 3 31.05.2011 11:40
Убрать форму при нажатии на тексте Endorfin jQuery 0 10.04.2011 19:34