6

「?-mix:」は正規表現で何を意味しますか?これはjavascript/jQueryでも有効ですか? 有効でない場合、適切な代替品は何ですか。

更新:これは完全な正規表現です/(?-mix:^[^,;]+$)/

クロムのJavaScriptで使用されており、次のエラーが発生しています:

Uncaught SyntaxError: Invalid regular expression: /(?-mix:^[^,;]+$)/: Invalid group

:これは役に立ちました:Ruby regexをjavascriptに変換する方法は?- (?i-mx:..) および Rails 3.0.3

4

2 に答える 2

10

Assuming perl context, (?-mix) this would

  • -m disable multiline matching
  • -i disable case insensitive matching
  • -x disable extended regex whitespace

See here: http://www.regular-expressions.info/modifiers.html

Not all regex flavors support this. JavaScript and Python apply all mode modifiers to the entire regular expression. They don't support the (?-ismx) syntax, since turning off an option is pointless when mode modifiers apply to the whole regular expressions. All options are off by default.

于 2013-04-26T14:24:46.407 に答える
3

ここでのコンテキストがjavascriptであることを明確にしたので、javascriptはそのフラグ構文をサポートしていないと思うので^、正規表現の途中で見つかったと不平を言っています。マッチの途中でマッチの開始点を見つけることはできないため、これは無効な正規表現になります。

JavaScript では、次のような正規表現自体の外部でフラグを指定します。

var re = /^[^,;]+$/mi;

または次のような引数として:

var re = new RegExp("^[^,;]+$", "mi");

このxフラグは JavaScript ではサポートされておらず、この特定の正規表現にはiフラグは必要ありません。

この特定の正規表現が行おうとしているのは、照合対象の文字列に and 以外のすべての文字が含まれているかどうか、,および;空ではないかどうかを通知することです。

于 2013-04-26T14:37:52.487 に答える