Показать сообщение отдельно
  #1 (permalink)  
Старый 14.08.2013, 11:56
Аспирант
Отправить личное сообщение для feniks7 Посмотреть профиль Найти все сообщения от feniks7
 
Регистрация: 08.07.2013
Сообщений: 51

Автоформат, нужна помощь.
Появилась такая идея/надобность - автоформатирование поступающего текста. Тоесть текст изначально идет сплошным потоком, типа:

"Это пробный текст.Переносов по строкам нету.Выделений по шрифтам нету. Списков нету:хотя это был бы 1; Это 2;Этопоследний;."

Так вот собственно мысль сделать так чтобы скрипт переформировал этот текст в:

"Это пробный текст.
Переносов по строкам нету.
Выделений по шрифтам нету.
Списков нету:
  • хотя это был бы 1;
  • Это 2;
  • Это последний;
"

Знаки:

"." - перенос строки
":" - начало списка
";" - элемент списка
";." - конец списка

Хотя бы так пока что.
Вот что у меня есть. (с последних изменений работать перестало)


<div id="to"><span id="tospan">!!!!!!</span></div>
	<input type="submit" value="CHECK" id="check">


<script language="JavaScript" type="text/javascript"> 
	$( "#check" ).click(function(){
			var i = 0;
			var current_txt='';
			var txt = 'ЭТО ПЕРВАЯ СТРОКА. ЭТО ВТОРАЯ СТРОКА.Это голова списка:Список1;Список2;Список3;.Надеюсь это соседним блоком пойдет уже.';
			alert(txt);
			var N = txt.replace(/[^.]/g,"").length;
			alert(N);
			for (var i = 0; i < N; i++) {
				var txt_i=txt.split('.')[i];
				var N_listheader = txt_i.replace(/[^:]/g,"").length;
				alert(N_listheader);
				alert("Text:"+ current_txt);
				for (var k = 0; k <= N_listheader; k++) {
					var txt_list_head=txt_i.split(':')[0];
					var txt_list_content=txt_i.split(':')[1];
					N_listcontent = txt_list_content.replace(/[^;]/g,"").length;
					for (var s = 0; s<=N_listcontent; s++)
					{
						var txt_list_contentlocal=txt_list_content.split(':')[s];
						txt_list_content = "<li>"+txt_list_contentlocal"</li>";
					}
					if(k>0)
					{
						current_txt = current_txt+txt_list_head+":<ul>"+txt_list_content;
						alert("Adding Listhead:");
						alert("Text:"+ current_txt);
					}
					else
					{
						current_txt= current_txt+txt_i+"<br>";
						alert("Adding normal text");
						alert("Text:"+ current_txt);
					}
					}
				
			}
			$( '#tospan' ).html(current_txt);
			return false;
		});
</script>


Было бы еще хорошо например если более Х точек, делать двухколоночный. То есть заносить в другой блок, или ячейку таблицы.
Ответить с цитированием