ユーザーが正規表現を指定できるアプリを書いています。もちろん、ユーザーは間違いを犯すので、解析できない正規表現を処理し、問題を解決するための実用的なアドバイスをユーザーに提供する方法が必要です。
私が抱えている問題は、スローされた例外new RegExp("something awful")
が正規表現n00bsには役立たず、ブラウザごとにメッセージが異なることです。例えば:
与えられた:
try{
new RegExp("(pie");
}catch(e){
console.log(e.message);
}
- Firefoxは「終了していない括弧」をスローします。
- Safariは「missing)」をスローします
- Chromeは「未終了のグループ」をスローします
そして、それらのメッセージ文字列がユーザー言語にローカライズされている場合、または時間の経過とともにドリフトしている場合でも、これをexception.messageと結び付けるのはおかしなことになります。
私の目標は、例外をキャッチし、それが実際に何であるかを理解し、はるかに初心者に優しいメッセージを出すことです。(そして、この例では、最終的には比類のないパレンを強調表示します。)
使用すべき他の例外識別子はありますか?これらを区別するためのより良い方法はありますか?それがすべて失敗した場合、最も人気のあるいくつかのブラウザでこれらすべての文字列が何であるかを誰かが収集したことがありますか?