2016-04-30 16 views
9

HTML5フォームの検証に正規表現パターンマッチングを使用しています。 Firefoxの最新バージョンではエラーが表示されます。私はFirefox 46でこれを見て始めました。私はこれが以前のFirefoxのバージョンでは問題ではないと思います。エラーと考えられ、これらの文字をエスケープされたのはなぜFirefoxエラー:パターンが有効な正規表現ではないため、入力を確認できません。正規表現で無効なIDエスケープ

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="UTF-8"> 
    </head> 
    <form> 
    <input pattern="[\@\%]"> 
    </form> 
</html> 

:この非常に簡単なテストケースによって引き起こさ

Unable to check <input pattern='[\@\%]'> because the pattern is not a valid regexp: invalid identity escape in regular expression

?私はいつも数字や文字ではない正規表現ですべてをエスケープしました。私はFirefoxのこのバージョンを除き、このタイプのエスケープ文字に何か不平を感じることは一度もありません。

私は正規表現を学んだとき、数字でも文字でもないものは特別な意味を持つことができると言われました。たとえそれが今ではないとしても、将来のバージョンではそうかもしれないので、それらをエスケープする方が良いです。これは本当ですか?

Firefoxのためにエスケープしてはいけない文字のリストはありますか?

+0

_sidenote_: - ://www.fxsitecompat彼らは特別な意味 – rock321987

答えて

4

これは、次の変更によるものです:誰かがすでに述べているBug 1227906 - HTML pattern attribute should set u flag for regular expressions

として、あなたはそれらの文字をエスケープする必要はありません。ただ、使用:

<input pattern="[@%]"> 
+0

を持っていないとして、あなたは文字クラスでこれらの文字をエスケープする必要はありませんが、[サイトの互換性ドキュメント](HTTPSを投稿。 com/en-CA/docs/2016/input-pattern-now-sets-u-flag-for-regular-expressions /)を使用します。 –

+0

[関連するgithubの問題](https://github.com/whatwg/html/issues/439)も再オープンしました。 – sideshowbarker

+0

Unicode regexモードでこれらの文字をエスケープできない理由は何ですか? –

関連する問題