タイトルを「u フラグを使用すると機能するが、v フラグを使用すると機能しない正規表現」に書き換えました。
P粉684720851
2023-08-25 15:47:43
<p>この正規表現パターンで次のコンソール警告が発生しました: </p>
<pre class="brush:php;toolbar:false;">^[a-zA-Z0-9 _.-] @[a-zA-Z0-9] \\.[a-zA-Z0- 9] $
<ブロック引用>
<p>パターン属性値 <code>^[a-zA-Z0-9 _.-] @[a-zA-Z0-9] \.[a-zA-Z0-9] $</code> ; は RegExp <code>u</code> フラグでは有効ですが、<code>v</code> フラグでは有効ではありません: Uncaught SyntaxError: 無効な正規表現: <code>/^[a-zA- Z0-9 _.-] @[a-zA-Z0-9] \</code>.<code>[a-zA-Z0-9] $/v:</code> 無効な文字があります。 </p>
</blockquote>
<p>この警告を解決するための有効な正規表現パターンを作成する方法がわかりません。誰かエラーとその修正方法を説明してもらえますか? </p>
<p>ドキュメントを見ようとしていますが、<code>v</code> フラグを使用して動作させる方法が見つかりません。 </p>
問題は、新しく導入された
v
フラグによりエスケープ ルールにさらなる制限が課されることです。文字クラスの減算と交差が許可されるため、文字クラスの末尾にある リテラル-
をエスケープしないままにすることはできません。したがって、
u
フラグを使用する場合にはそのような制限はありませんが、v
フラグを使用する場合にはそのような制限があります。見る。