2010-12-11 4 views
0

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

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, станет серьезным началом для решения моей проблемы.

+0

Какое влияние это оказывает на Safari и Chrome? – BoltClock

+3

Webkit с удовольствием глотает '/ string/zxcvbgi', игнорируя недопустимый' zxcvb' и все еще применяя действительные флаги 'gi'. Не так. –

+0

@ Ken Redler - пожалуйста, напишите ответ, и я приму его. – vkraemer

ответ

2

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

/theregex/zxcvbgi 

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

/theregex/gi 

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

6

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

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

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

/projects\/[^/]+/zyx 

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

Кроме того, я рекомендую вам следовать за good tutorial, а не просто вырезать и вставлять.

Смежные вопросы