Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа со строками (https://javascript.ru/forum/misc/35303-rabota-so-strokami.html)

Maxim_Never 06.02.2013 20:28

Работа со строками
 
Смысл скрипта: вырезать в массив все вопросительные предложения из текста. Работа скрипта - вырезать все, что начинается с символов [ .!? ] - (это как бы всевозможные окончания предложений) и заканчивается символом [ ? ]. То что осилил я - вырезает все только от символа [ . ] и заканчивается символом [ ? ] - как можно выкрутится - есть предложения ?
----------------------------------------------------
function getQuestionStringFromText(text)
	{
		founds = new Array();
		_mod = text.length;
		while(true)
		{
			s_end = text.lastIndexOf("?", _mod);		// начало
				if(s_end == -1) break;
				
			s_start = text.lastIndexOf(".", s_end);		// конец 
			// [вот тут проблема - можно указать только один символ в параметре indexOf]
			// как можно сделать что-то типо s_start = text.lastIndexOf("." || "!" || "?", s_end);
				if(s_start == -1) break;			
				
			founds.push(text.slice(s_start+1, s_end+1));
			_mod = s_start;
		}
		return founds;
	}

	var searchStr = getQuestionStringFromText(str);
	searchStr[0]  // первое пр-е
    searchStr[1]  // второе пр-е

---------------------------------------------------------
Или я использую в корне неправильный способ решения этой проблемы ?

рони 06.02.2013 20:47

Maxim_Never,
var str ='Смысл скрипта: вырезать в массив все вопросительные предложения из текста! Работа скрипта - вырезать все, что начинается с символов.это как бы всевозможные окончания предложений и заканчивается символом ?То что осилил я - вырезает все только от символа  и заканчивается символом? как можно выкрутится.есть предложения ?'
alert(str.match(/([^.!?]+)\?/mig).join('\n'));

Maxim_Never 06.02.2013 20:52

Шикаррно - спасибо )

nerv_ 06.02.2013 20:53

Цитата:

Сообщение от рони
/mig

Цитата:

есть только миг, между прошлым и будущим...
:)

Maxim_Never 06.02.2013 20:58

А что кстати /mig означает ?
------------------------------
Все нашел

рони 06.02.2013 21:03

Maxim_Never,
флаги - строка из любой комбинации символов g(глобальный поиск), i(регистр неважен) и m(многострочный поиск).


Часовой пояс GMT +3, время: 04:46.