Скрипт считает сколько раз в первой текстовой форме встречается элемент, указанный во второй текстовой форме. Элементом поиска могут быть один символ (буква, цифра, спец.символы) или одно слово (существительное, прилагательное, предлог и т.п.). Поиск повторений и подсчет элементов выполняется без учета регистров.
Создаем необходимые элементы HTML для работы скрипта:
<form name="myForm">
<textArea name="phrase" maxlength="600" rows="6" cols="24"></textArea><br>
<input type=text name="element" size="15"/><br><br>
<strong>Ищем повтор:</strong>
<input type=radio name="elemType" value="буквы/символа" />буквы/символа
<input type=radio name="elemType" value="слова"/>слова
</form>
<button onclick="elemCount()" value="count">Считать</button>
<div id="result"></div>
Итак, мы создали форму myForm, где textArea name="phrase" - форма ввода в которой будут искаться совпадения;
input type=text name="element" - форма, куда вводится элемент, повтор которого необходимо найти;
Далее выбирается тип элемента с помощью radio, и при нажатии кнопки результат поиска повторов записывается в div id="result"
Далее (между тегами script) создаем функцию elemCount():
function elemCount() {
var phrase = " " + document.myForm.phrase.value.toUpperCase();
var element = document.myForm.element.value.toUpperCase();
var searchType;
for (var i in document.myForm.elemType) {
if (document.myForm.elemType[i].checked) {
searchType = document.myForm.elemType[i].value;
}
}
// удаляем все пробелы и знаки табуляции
element = element.replace(/\s/g,"");
if (document.myForm.elemType[1].checked) {
element = " " + element + " ";
// обработка знаков препинания
phrase = phrase.replace(/\W/," ") + " ";
}
var amount = phrase.split(element).length - 1;//подсчитываем результат
var result = document.getElementById("result");
result.innerHTML = 'Количество повторов ' + searchType + '<strong> "' +element.toLowerCase() +'":</strong> ' + amount;
};
При необходимости дополнительных модулей, доработок и кастомизации скрипта, эл.адрес автора: freeden_codomaza@mail.ru .
Немного сложная (лично для меня) статья. Когда читаю подобного рода статьи, содержащие большое количество специфической тематической информации, невольно проникаюсь уважением к их автору, способному разбираться в таких нюансах. Чувствую себя полным профаном, а автору - спасибо за мастер-класс!