Мастер-классы по Javascript, AJAX/COMET, jQuery Узнать больше...
Javascript.RU

exec

Синтаксис

var result1 = regexp.exec(str)
var result2 = regexp.exec(str)

Аргументы

str
текст, в котором искать

Описание, примеры

Выполняет поиск совпадений в указанной строке. Возвращает массив результатов или null

Если вы хотите просто проверить, есть ли совпадения, используйте для этого метод test или String#search.

Метод exec при совпадении возвращает массив и обновляет свойства объекта regexp. Если совпадений нет - exec возвращает null.

Если указан флаг "g", то повторный вызов exec будет давать следующее совпадение.

regexp = /a+(b+(c+))/g
str = "abc aabbcc"
result1 = regexp.exec(str) 
result2 = regexp.exec(str)
result1
Вложенный массив совпадений ["abc", "bc", "c"]
regexp.lastIndex после result1
3
result2
Вложенный массив совпадений ["aabbcc", "bbcc", "cc"]
regexp.lastIndex после result2
10

Это происходит за счет автоматического обновления при выполнении exec индекса конца последнего поиска lastIndex. Следующий поиск начинается от lastIndex.

Например, следующий скрипт выдает все совпадения:

var myRe = /ab*/g;
var str = "abbcdefabh";
var myArray;
while ((myArray = myRe.exec(str)) != null)
{
  var msg = "Нашел " + myArray[0] + ".  ";
  msg += "Следующий поиск начнется с " + myRe.lastIndex;
  document.write(msg);
}

Он выведет текст:

Нашел abb. Следующий поиск начнется с 3
Нашел ab. Следующий поиск начнется с 9

Вы можете вызвать exec при неявном определении объекта RegExp:

var matches = /(hello \S+)/.exec('This is a hello world!');
alert(matches[1]);

Автор: Гость (не зарегистрирован), дата: 26 ноября, 2009 - 16:30
#permalink

а что если .exec() выдает ошику
данный метод не поддерживается ?


Автор: Вазелин (не зарегистрирован), дата: 6 мая, 2010 - 10:46
#permalink

Сравните примеры в хелпе с вашим кодом. Я думаю у вас регулярка в кавычках, поэтому и не работает. Мой пример:

var reg = /яхту/i;
var ex = reg.exec('Хуй на руль и поехали на ваську смотреть на яхту Обрамовича!');
document.writeln(ex);


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
4 + 10 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Вакансии
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Статьи и мероприятия

Будьте в курсе наших последних новостей!

Последние обсуждения на форуме
Forum
Последние комментарии