Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.04.2010, 14:53
Аватар для yolka
Интересующийся
Отправить личное сообщение для yolka Посмотреть профиль Найти все сообщения от yolka
 
Регистрация: 14.09.2009
Сообщений: 13

Почему 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" ?
Ответить с цитированием
  #2 (permalink)  
Старый 24.04.2010, 15:02
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от 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"))
Ответить с цитированием
  #3 (permalink)  
Старый 24.04.2010, 15:09
Аватар для yolka
Интересующийся
Отправить личное сообщение для yolka Посмотреть профиль Найти все сообщения от yolka
 
Регистрация: 14.09.2009
Сообщений: 13

Octane Спасибо, за помощь
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не возвращает значение с первого раза document.getElementById().style.top 2dkott Общие вопросы Javascript 3 08.09.2009 18:29
Функция не возвращает false, почему? Vitaly jQuery 3 05.07.2009 16:05
Почему значения св-в undefined? Bakuryu Events/DOM/Window 4 18.07.2008 19:49