Показать сообщение отдельно
  #17 (permalink)  
Старый 27.12.2013, 00:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

MrBoriska,
function gen(str, len, repeat,tabu)
   { var obj_tabu = {};
     for (var i=0; i<tabu.length; i++)  {obj_tabu[tabu[i]]=!0};//сформировали обьект из запретных слов
     str = str.replace(/<[^>]*>/g, ' ');//выкусили теги
     str = str.replace(/[^a-zа-яё\s]/gi, ' '); //убрали небуквы
     str = str.split(/\s+/) ;//сформировали массив слов из строки
     var obj_output = {};
     for (var i=0; i<str.length; i++)  {
       var word = str[i];
       if(word.length >= len && !obj_tabu[word])  obj_output[word]=(obj_output[word]||0)+1;
     } // сформировали обьект из разрешённых слов  и нужной длины
     var output = [];
     for(var word in obj_output) if (obj_output[word] >= repeat) output.push(word);//отобрали слова с нужным повторением
     return output
   }
  var str = 'На выходе должна быть строка, состоящая из слов перечисленных через запятую..'+
'На входе должно быть три переменные: '+
'1. Строка, состоящая из набора слов, символов, пробелов и даже html тегов. '+
'2. Число, которое означает минимальное количество символов в слове. '+
'3. Число, означающее минимальное количество повторений слова в тексте. '+
'4. Слова, перечисленные через запятую, которые не следует учитывать при выводе результата.'
  alert(gen(str, 3, 2,['Число','слов']) )
Ответить с цитированием