「u」フラグは有効であるが有効ではない正規表現パターンに関するコンソール警告が表示されました。 「v」フラグ。この問題について詳しく見てみましょう。
HTML では、パターン属性内の RegExp オブジェクトをコンパイルするときに、'v' フラグが自動的に追加されます。このフラグは、正規表現パターンでの文字エスケープに対してより厳しい制限を適用します。
「u」フラグと「v」フラグの主な違いの 1 つは、「-」の処理です。 ' キャラクター。 「u」フラグを使用すると、「-」文字を文字クラスの末尾にリテラル文字として使用できます。ただし、文字クラスの減算と交差を許可する「v」フラグを使用すると、リテラルの「-」文字をエスケープする必要があります。
指定された正規表現には「-」が含まれています。文字クラスの末尾の文字: [a-zA-Z0-9 _.-]。このパターンを「v」フラグで有効にするには、「-」文字をバックスラッシュでエスケープします: [a-zA-Z0-9 _.-]。
「-」文字をエスケープした場合とエスケープしない場合の動作の比較は次のとおりです:
<code class="js">console.log(/^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$/u.test("[email protected]")); // true, using 'u' flag console.log(/^[a-zA-Z0-9+_.\-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$/v.test("[email protected]")); // false, using 'v' flag without escaping '-' console.log(/^[a-zA-Z0-9+_.\-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$/v.test("[email protected]")); // true, using 'v' flag with escaped '-'</code>
この記事では、「u」フラグと「v」フラグの動作の違いについて説明します。 HTML の pattern 属性とともに使用する場合の正規表現パターン。無効なパターンを避けるために「v」フラグを使用する場合は「-」文字をエスケープする必要があることを強調しています。
以上が私の正規表現パターンが「u」フラグでは機能するのに、「v」フラグでは機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。