Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Убрать отступы в многострочном тексте (https://javascript.ru/forum/dom-window/55874-ubrat-otstupy-v-mnogostrochnom-tekste.html)

rafaello 19.05.2015 00:19

Я попробовал в песочнице, и получается так, что если убрать второй <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";
}

рони 19.05.2015 00:48

rafaello,
а чем неустроило
var ddrr = text.replace(/^\s+|\s+(?=[\n\r])/gm,"")
?

laimas 19.05.2015 03:20

Цитата:

Сообщение от rafaello
надо вытащить тот текст из первого textarea, очистить от html тегов, в каждой строке убрать пробелы и вставить во второй textarea.

Вопрос - а зачем вставлять во вторую текстовую область и даже зачем вообще нужна вторая текстовая область, если только не для того, чтобы это в конечном итоге не отправить на сервер?

kostyanet 19.05.2015 05:27

Цитата:

Сообщение от rafaello
За одно действие (один клик) надо вытащить тот текст из первого textarea, очистить от html тегов, в каждой строке убрать пробелы и вставить во второй textarea.

И нафига козе баян из циклов и прочей тряхомудии? Потому что сами написали и полюбили?

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

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

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

https://css-tricks.com/snippets/java...in-javascript/

kostyanet 19.05.2015 05:32

Проблема с функциями в том, что специальные символы не конвертятся. Например там написано &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;
};

rafaello 19.05.2015 07:06

Цитата:

если только не для того, чтобы это в конечном итоге не отправить на сервер?
Именно для этого это и надо :)
Цитата:

а чем неустроило
var ddrr = text.replace(/^\s+|\s+(?=[\n\r])/gm,"")

Отчего же, это как раз и устраивает! :thanks:
Всем спасибо!

laimas 19.05.2015 11:57

Цитата:

Сообщение от rafaello
Именно для этого это и надо

Ну и почему не "если бы это было на РНР, я бы его заразу в два счета уделал"? :)


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