Показать сообщение отдельно
  #1 (permalink)  
Старый 23.08.2013, 21:01
Профессор
Отправить личное сообщение для Почемучкин Посмотреть профиль Найти все сообщения от Почемучкин
 
Регистрация: 11.05.2011
Сообщений: 241

Нежадный поиск не хочет работать в String.match()
Почему в match не хочет работать нежадная директива типа .*? или .+?
Смотрите:

alert( "1245;12345".match( /1.*?3.*?5/ )  )

результат:   ["1245;12345"]

alert( "1245;12345".match( /(1.*?3.*?5)/ )  )

результат:   ["1245;12345", "1245;12345"]

alert( "1245;12345".replace( /^.*(1.*?3.*?5).*$/, "$1" )  )

результат:   "12345" (правильно)

А от match() ведь ожидалось то, что выдает replace()

То есть нежадный оператор работает в replace(), но не работает в match(). В чем же дело?
Ответить с цитированием