Появилась такая идея/надобность - автоформатирование поступающего текста. Тоесть текст изначально идет сплошным потоком, типа:
"Это пробный текст.Переносов по строкам нету.Выделений по шрифтам нету. Списков нету:хотя это был бы 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>
Было бы еще хорошо например если более Х точек, делать двухколоночный. То есть заносить в другой блок, или ячейку таблицы.