Что означает флаг d в javascript RegEx?

У меня есть регулярное выражение, которое, похоже, работает в Safari и Chrome, что дает следующую ошибку в FireFox.

Error: invalid regular expression flag d
Source File: http://java.net/projects/mq
Line: 194, Column: 34
Source Code:
    var vbkpatt1=/projects\/[^/]+/di; 

Я пару недель назад сражался с этим RegEx и отложил его, поэтому у меня нет ссылки на страницу, которая заставила меня использовать флаг 'd'. Указатель на ref, который включает флаг d, станет твердым началом для решения моей проблемы.

Ответ 1

В этом случае браузеры Webkit более терпимы и будут принимать что-то вроде этого:

/theregex/zxcvbgi

Вместо того, чтобы бросать ошибку am, они видят это как:

/theregex/gi

Firefox, однако, будет возражать против любых недопустимых флагов. Ник указывает на правильные ответы.

Ответ 2

Нет флага d, который является вашей проблемой:) Есть:

  • g - Глобальный поиск (несколько совпадений)
  • i - Игнорировать случай
  • m - Несколько ввода

Ответ 3

Вы уверены, что это действительно что-то делает в Chrome? Я пробовал:

/projects\/[^/]+/zyx

Он принимает это как /projects\/[^/]+/, но я сильно сомневаюсь, что это все реальные расширения. Он просто игнорирует их. как отметил Кен, он будет хранить действительные флаги, даже если присутствуют недопустимые.

Кроме того, я рекомендую вам следовать хороший учебник, а не просто вырезать и вставлять.