Скрипт считает сколько раз в первой текстовой форме встречается элемент, указанный во второй текстовой форме. Элементом поиска могут быть один символ (буква, цифра, спец.символы) или одно слово (существительное, прилагательное, предлог и т.п.). Поиск повторений и подсчет элементов выполняется без учета регистров.

Создаем необходимые элементы 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 .

Комментарии

captcha
,  14 авг. 2012 Ответить

Немного сложная (лично для меня) статья. Когда читаю подобного рода статьи, содержащие большое количество специфической тематической информации, невольно проникаюсь уважением к их автору, способному разбираться в таких нюансах. Чувствую себя полным профаном, а автору - спасибо за мастер-класс!

,  16 авг. 2012 Ответить

Не за что! Надеюсь информация была полезной.

,  24 июн. 2013

Спасибо! Информация более чем полезная и наглядно подана! Желаю Вам успехов в этом нелегком, но перспективном деле!