Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Почему match() возвращает значение undefined (https://javascript.ru/forum/events/9006-pochemu-match-vozvrashhaet-znachenie-undefined.html)

yolka 24.04.2010 14:53

Почему match() возвращает значение undefined
 
Здраствуйте, скажите пожалуйста почему метод match() возвращает значение undefined при обращении к следущим после нулевого подвыражения элементам масива?


function action() {
	var result = "2-1".match(/([0-9])([\-])([0-9])/g);
			
	if(result != null) {
		alert(result[0]); // 2-1
		alert(result[1]); // undefined
	}
}

Разве alert(result[1]) не должен вывести "2" ?;)

Octane 24.04.2010 15:02

Цитата:

Сообщение от http://javascript.ru/String/match
Если регулярное выражение без флага "g", то возвращает такое же результат, как regexp.exec(str).

Если же для регулярного выражения указан флаг "g", то метод возвращает массив, содержащий все совпадения.

А с шаблоном в данной строке только одно совпадение.
alert("2-1".match(/([0-9])([\-])([0-9])/));

alert((/([0-9])([\-])([0-9])/g).exec("2-1"))

yolka 24.04.2010 15:09

Octane Спасибо, за помощь


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