Что означает флаг 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\/[^/]+/
, но я сильно сомневаюсь, что это все реальные расширения. Он просто игнорирует их. как отметил Кен, он будет хранить действительные флаги, даже если присутствуют недопустимые.
Кроме того, я рекомендую вам следовать хороший учебник, а не просто вырезать и вставлять.