私の理解では、これは
/[\d-X]/
標準では許可されていません。
抽象操作 CharacterRange は、2つの CharSet パラメーター A および B を取り、次のことを実行します。.io/#x15.10.2.15 )
ただし、一部の(ほとんどの?)ブラウザ-
は、エスケープが前後にある場合、序数文字として扱います。そのため、上記は数字、ダッシュ、および X に一致します。
var re = /[\d-X]/g;
for(var i = 0, r = ""; i < 0x10000; i++) {
var s = String.fromCharCode(i);
if(!s.replace(re, ''))
r += s;
}
console.log(r) // -0123456789X
質問:
- この動作はすべてのエンジンで観察できますか? (最新の Webkit と Firefox をテストしました)
- 彼らが標準に違反することを決定した理由の説明はありますか (ドキュメント、ソース、メーリング リストなど)?