2010-12-11 14 views
0

私はSafariとChromeで動作するように見える正規表現を持っており、FireFoxで次のエラーが発生します。javascript RegExではdフラグの意味は何ですか?

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

私は数週間前、この正規表現と戦っていたし、それを脇に置いていたので、私は「D」フラグを使用するように私を導いたページへのリンクを持っていません。 dフラグを含むrefへのポインタは、私の問題を解決するための確実な始まりです。

+0

SafariとChromeにどのような影響がありますか? – BoltClock

+3

Webkitはうれしく '/ string/zxcvbgi'を取り込み、無効な' zxcvb'を無視し、有効な 'gi'フラグを適用します。そうではありません。 –

+0

@Ken Redler - 回答を投稿してください、私はそれを受け入れます。 – vkraemer

答えて

2

Webkitのブラウザでは、この場合には、より寛容であり、このような何か受け入れます:

/theregex/gi 

のFirefox、しかし、以下となります。代わりに、午前エラーを投げるの、彼らのようにそれを参照してください

/theregex/zxcvbgi 

をオブジェクトを無効なフラグに変換します。 Nickは彼の答えで有効なものを指摘する。

6

あなたの問題である無dフラグ、:)がありますがありません:

  • g - グローバル検索(複数の一致)
  • i - 無視するケースが
  • m - 複数の入力
0

実際にはとなりますか?私が試した:それは/projects\/[^/]+/として、私は強く、それらはすべて本物拡張で疑うことを受け入れ

/projects\/[^/]+/zyx 

。それはただ無視しているだけです。 Kenが指摘したように、無効なものがあっても有効なフラグを保持します。

また、切り取りと貼り付けではなく、good tutorialに従うことをお勧めします。

関連する問題