をエスケープする必要があり、私はこの正規表現があります。どのように私はこのJavaScriptの正規表現(RFC 2822のメールバリデータ)
/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/
そして、私はそうのようなスラッシュをエスケープしています:
/[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/
これは正常に動作するようにしかし、私はエッジケースがないことと、これを行うことによって正規表現が壊れてしまうことに懸念しています。これはスラッシュをエスケープする適切な方法ですか?
かそこらのように、私が代わりにnew
と宣言する必要があります。
var re = new RegExp(/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/);
JavaScriptがスラッシュなしで正しく実行は、(Chromeで)エスケープが、それは私の編集者(TextMateのの)シンタックスハイライトで台無し。さらにテストすると、new
さえも、構文強調表示の問題が解消されません。
完璧な回答、ありがとう! –