Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.01.2009, 21:12
The One
 
Сообщений: n/a

Не могу победить RegExp (exec)
Уже устал разбираться, не могу никак понять почему не работает вот этот код:

var myRe = /(\S+)/ig;
var arr = myRe.exec("one, two, three");
alert (arr);

В массив arr почему-то пишется только два значения - arr[0] = one, и arr[1] = one, Почему скрипт не хочет идти дальше и обрабатывать всю строку?
Ответить с цитированием
  #2 (permalink)  
Старый 03.01.2009, 22:11
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Метод exec всегда получает одно вхождение, но использовать (с флагом g) вы можете несколько раз в цикле, для того, чтобы получить все нужные вхождения. Для вашей задачи, как я понял, вам нужен метод match. За подробностями прошу в статью "регулярные выражения".
Ответить с цитированием
  #3 (permalink)  
Старый 03.01.2009, 23:28
The One
 
Сообщений: n/a

Большое спасибо, работает. Только я не понимаю, зачем тогда нужна ф-я exec. Привык работать в php, там это немного иначе реализовано, и как-то более удачнее на мой взгляд.
Ответить с цитированием
  #4 (permalink)  
Старый 04.01.2009, 10:25
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Как ни странно, в PHP имеется аналоги для лбоих функций))))
так что привыкайте тут к match, раз привыкли в PHP к match_all
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RegExp & Mozilla (быстродействие) tau Общие вопросы Javascript 9 24.11.2008 16:35
RegExp и unicode Yury900 Общие вопросы Javascript 7 13.05.2008 00:19