実際の JavaScript 正規表現境界ケース実行
境界ケースと安全な置換で JavaScript 正規表現をテストする方法
JavaScript 正規表現をレビュー可能にする手順:意図をケースにし、エンジンとフラグを確認し、高コストなパターンを本番入力から遠ざけます。
ツールを開くパターンの前に一致を記述する
一致すべき例、一致しない例、境界、空、Unicode、ほぼ一致を列挙し、完全一致かグループかを示します。
アンカー、境界、空白、任意部分、エスケープは重要です。JSON、URL、日付、マークアップの完全な文法にはパーサーを使います。
同じエンジンと明示的なフラグで試す
このツールは JavaScript RegExp で g、i、m、s、u、y を使います。PCRE、Python、Java、.NET、DB、サーバーは異なる場合があります。
g は出現、m は ^/$、s はドット、u は Unicode、y は正確な位置に影響します。
グループと置換を一緒に確認する
番号・名前付きグループを、存在する例と任意で不在の例で確認します。
$&、$1、$<name> を試します。置換入力時は g がなくてもグローバル置換です。
性能リスクを避ける
`(a+)+` や `(.*)*` のような曖昧なネスト反復は、長いほぼ一致で非常に遅くなります。
500 KB、1,000件の上限はありますが、別プロセスへの分離も実行時間の上限もありません。短い敵対的ケースを使い、サーバー側にも保護を設けます。
繰り返せるケースを残す
パターン、フラグ、例、期待値をコードの近くに残し、最終実行環境で自動テスト化します。
処理はローカルですが、ログ、トークン、メール、署名付き URL は機密です。
よくある質問
なぜサーバーで失敗しますか?
別のエンジンを使う可能性があります。
g は置換を変えますか?
プレビューはグローバルに置換します。
500 KB は遅い regex を防ぎますか?
いいえ、実行時間の上限はありません。