[2] [DFN[[RUBYB[[[接頭辞修飾子]]]@en[prefix modifier]]]]は、
[[変数]]の[[展開]]に際して値の最大長を指定する[[値修飾子]]です。

* 仕様書

[REFS[
- [1] [CITE@en[RFC 6570 - URI Template]] ([TIME[2014-10-27 23:08:55 +09:00]] 版) <http://tools.ietf.org/html/rfc6570#section-2.4.1>
]REFS]

* 意味

[3] [[接頭辞修飾子]]は、[[変数]]の[[展開]]が[[変数]]の値の文字列の[[接頭辞]]に限定されることを示します
[SRC[>>1]]。

[4] [[接頭辞修飾子]]は、単純な[[文字列]]の値にのみ適用されます。
[[リスト]]や[[連想配列]]には適用できず [SRC[>>1]]、無視されます。

* 構文

[5] [[接頭辞修飾子]]は、 [CODE[[[:]]]] の後に4桁[[以下]]の[[正整数]]を指定したものです。
[[先導0]]は認められていません。 [SRC[>>1]]

[FIG(railroad)[
= [CODE(URI)[[[:]]]]
= [CODE[[[1]]]]..[CODE[[[9]]]]
= ?
== [[ASCII数字]]
= ?
== [[ASCII数字]]
= ?
== [[ASCII数字]]
]FIG]

[6] [[数字]]列は、[[変数]]の値の先頭からの [[Unicode文字]]の数を表します [SRC[>>1]]。

* 展開

[10] [[接頭辞修飾子]]が適用される場合には、[[文字列]]の先頭の指定された[[文字数]]分のみが使われます。

[11] 単位は[[符号位置]]であり、[[結合文字]]その他は考慮されません。
また[[パーセント符号化]]も考慮されないので、 [CODE[[[+]]]] や [CODE[[[''#'']]]]
で入力に[[パーセント符号化]]が含まれていると、[[接頭辞修飾子]]により分断されて結果が正しい[[パーセント符号化]]にならないことがあります。

[7] [[変数]]の値が指定された値より短い時は、全体を使います [SRC[>>1]]。

[8] [[展開]]については、[[雛形式]]を参照。
