Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > разбивка на слова


Автор: Rodenis 24.12.2006, 14:01
Здравствуйте!
может у кого есть готовое решение - необходимо взять из <textarea> слова, удалить оттуда тэги, оставшийся текст разбить на слова, слова эти поместить в массив в порядке уменьшения частоты встречаемости.

если есть что-то подобное или какие-то куски - прошу помочь!

Автор: dstorm81 25.12.2006, 16:00
Код

<textarea style="width:100%;height:50%" id="zonecr">
<optgroup label="Переход по форумам"><option value='-1'>Программирование</option>
<option value="1">&nbsp;&nbsp;- C ++</option><option value="2">&nbsp;&nbsp;- Delphi, Kylix and Pascal</option>
<option value="9">&nbsp;&nbsp;- Java</option><option value="3">&nbsp;&nbsp;- Visual Basic</option>
<option value="47">&nbsp;&nbsp;- .NET</option><option value="4">&nbsp;&nbsp;- ASM</option>
<option value="12">&nbsp;&nbsp;- Базы данных</option><option value="115">&nbsp;&nbsp;- Красная книга</option>
<option value='-1'>Разработка систем для Web</option><option value="6">&nbsp;&nbsp;- PHP  (+8 подфорумы)</option>
<option value="5">&nbsp;&nbsp;- Perl  (+2 подфорумы)</option><option value="15">&nbsp;&nbsp;- Flash platform</option>
<option value="7">&nbsp;&nbsp;- ASP </option><option value="10" selected="selected">&nbsp;&nbsp;- JavaScripts  (+2 подфорумы)</option>
<option value="16">&nbsp;&nbsp;- Теория веб-дизайна </option><option value="64">&nbsp;&nbsp;- Вёрстка веб-сайтов </option>
<option value="41">&nbsp;&nbsp;- Хостинг </option><option value="121">&nbsp;&nbsp;- Администрирование Web серверов и Web служб </option>
<option value="122">&nbsp;&nbsp;- XML, XSL </option><option value="18">&nbsp;&nbsp;- Web технологии  (+11 подфорумы)</option>
<option value="177">&nbsp;&nbsp;- Работа с готовыми скриптами / Поиск движков  (+1 подфорумы)</option>
<option value='-1'>Технологии и алгоритмы</option><option value="13">&nbsp;&nbsp;- Алгоритмы </option>
<option value="11">&nbsp;&nbsp;- Технологии</option><option value="123">&nbsp;&nbsp;- Репортинговые системы </option>
<option value="36">&nbsp;&nbsp;- Программирование контроллеров </option><option value="128">&nbsp;&nbsp;- Программирование мобильных устройств </option><option value="129">&nbsp;&nbsp;- Программирование игр, графики и искусственного интеллекта </option>
<option value='-1'>Компьютерные системы</option><option value="28">&nbsp;&nbsp;- MS Windows </option>
<option value="29">&nbsp;&nbsp;- Linux/Unix</option>
<img src="sdsdsd" />
</textarea>
<div id="otchet">
</div>
<script>
var counter=0;
var outStr='';
var zVal=document.getElementById("zonecr").value.replace(/<\/.*>/g,'').replace(/<.*>/g,'');//теги нафиг
var alf=[];
for(var i=0;i<zVal.length;i++){alf[i]=zVal.substring(i,i+1)}//загнал в массив, работает быстро
alf=alf.sort();//отсортировал
for(var m=0;m<alf.length;m++)
{
if(alf[m]==alf[m+1]){counter++;}
else
    {
    if(counter==0){counter=1;}
    outStr+="символ <span style='color:red'>"+alf[m]+"</span> встретился "+counter+" раз<br \/>";
    counter=0;
    }
}

document.getElementById("otchet").innerHTML=outStr;
</script>



вот на коленке набросал, вроде работает, хотя с регуляркой еще что нить можно сделать переносы например не нужны кажись, ну сам думай далее

Автор: Rodenis 26.12.2006, 05:17
спасибо!!!
все классно работает, только это разделение по символам, мне нужно по словам.
видимо, массив формировать, ориентируясь на пробелы?
что-то типа split(" ") ?

PS
добавил alf=zVal.split(" ");
все работает.
проблема в том, что если в тексте есть яваскрипт-код, то тэги <script> и </script> вырезаются, а все что между ними - остается и идет в учет!!!
как бы учесть то, что в тексте, который в <textarea>, может быть несколько участков яваскрипт-кода...

Автор: dstorm81 26.12.2006, 08:35
во первых со словами чтобы слова были попробуй регулярку типа (я в регулярке не гуру)
var zVal=document.getElementById("zone").value.match(/[^ ]*/gi); будeт тебе массив со словами и пробелами отдельно
alert(zVal);
со скриптом щаз поищем smile

Автор: AKS 26.12.2006, 20:07
http://forum.vingrad.ru/index.php?showtopic=121105&view=findpost&p=920569 здесь "выдирали" содержимое тэгов <script>

Автор: Rodenis 29.12.2006, 04:05
осталось только кучу кода собрать в один smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)