HTML5 の localStorage キーは任意の文字列にできますか? 質問する

HTML5 の localStorage キーは任意の文字列にできますか? 質問する

私は HTML5 localStorage を使用するアプリケーションに取り組んでいます。キーが文字列でなければならないという事実以外に、キーに何らかの制限があるかどうかはどこにも見つかりません。

具体的には、localStorage をサポートするすべてのブラウザーで、localStorage のキーとして URL を使用できるかどうかを知りたいです (たとえば、 のような記号を:/?#._-=+@!$%^&*()[]{}|<>キーで使用することは許可されていますか)。

また、空白文字についてはどうでしょうか? ブラウザ間で localStorage キーに空白文字が許可されますか?

私は見つけたこのトピックただし、localStorage 値 (キーではない) 内の許容可能な文字列のみがテストされているようです。

ベストアンサー1

仕様では、キーと値を型値として設定し、返す必要がありますDOMString。DOMString は [DOM Level 3 Core][1] で次のように説明されています。

A DOMString is a sequence of 16-bit units.

IDL Definition

    valuetype DOMString sequence<unsigned short>;

UTF-16 エンコードは業界で広く使用されているため選択されました。HTML と XML の両方において、ドキュメントの文字セット (したがって数値文字参照の表記) は UCS [ISO/IEC 10646] に基づいています。したがって、ソース ドキュメント内の単一の数値文字参照は、DOMString 内の 2 つの 16 ビット単位 (上位サロゲートと下位サロゲート) に対応する場合があります。文字列比較に関する問題については、「DOM での文字列比較」を参照してください。

Java と ECMAScript の場合、両方の言語ともエンコードとして UTF-16 を使用するため、DOMString は String 型にバインドされます。

したがって、公式には、合法的な UTF-16 文字列はすべてキーまたは値として合法です。ただし、すべての UTF-16 コードポイントが合法的な文字であるわけではないため、「サロゲート ペア」、「バイト オーダー マーク」、「予約文字」などの特定の記号は避ける必要があります。

おすすめ記事