Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не могу победить RegExp (exec) (https://javascript.ru/forum/misc/2479-ne-mogu-pobedit-regexp-exec.html)

The One 03.01.2009 21:12

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

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

В массив arr почему-то пишется только два значения - arr[0] = one, и arr[1] = one, Почему скрипт не хочет идти дальше и обрабатывать всю строку?

Андрей Параничев 03.01.2009 22:11

Метод exec всегда получает одно вхождение, но использовать (с флагом g) вы можете несколько раз в цикле, для того, чтобы получить все нужные вхождения. Для вашей задачи, как я понял, вам нужен метод match. За подробностями прошу в статью "регулярные выражения".

The One 03.01.2009 23:28

Большое спасибо, работает. Только я не понимаю, зачем тогда нужна ф-я exec. Привык работать в php, там это немного иначе реализовано, и как-то более удачнее на мой взгляд.

Gvozd 04.01.2009 10:25

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


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