ここでは、インターネットサービススクリプト関数およびその構文と機能の簡単な説明をアルファベット順に示します。関数については、インターネットサービススクリプトについてを参照してください。
escape
引数「String」内の予約文字をCスタイルでエスケープ処理します(各予約文字の前にバックスラッシュ(\)を付けます)。これにより、結果の文字列をCスタイルのスクリプト言語(JavaScriptなど)で安全に使用できます。
デフォルトの予約文字のセットは、引用符(')、二重引用符(")、改行復帰(ASCII 13)、改行(ASCII 10)およびバックスラッシュ(\)です。エスケープ処理する追加文字は、インターネットサービススクリプトのコマンドドキュメントに記載されている<!--#config escapechars=""-->コマンドを使って設定できます。
構文
@escape(String)
例
<!--#set var="str" value="This is a #string\n, with \"characters\" that 'need' escaping:'"-->
indexof
String内で最初に出現するKeyのインデックスを返します。
String内にKeyがない場合は-1を返します。Keyには1つ以上の文字を指定でき、検索の比較では大文字と小文字が区別されます。
構文
@indexof (String, Key)
例
<!--#set var="n" expr="@indexof ('abcdef012345', 'c')" -->
<!--結果としてnに「2」が含まれます -->
<!--#set var="n" expr="@indexof ('abcdef012345', 'ef01')"-->
<!--結果としてnに「4」が含まれます-->
<!--#set var="n"expr="@indexof ('abcdef012345', '/ [Cc]/') "-->
<!--結果としてnに「2」が含まれます-->
<!--#set var="n"expr="@indexof ('abcdef012345', 'z')"-->
<!--結果としてnに「-1」が含まれます -->
length
引数Stringの長さを返します。
注意
返される長さは、バイト単位で、現在の文字によって文字数と一致する場合と一致しない場合があります。
構文
@length(String)
例
<!--#set var="len" expr="@length($name)"-->
<!--#if expr="$len <5"--> 5文字以上入力してください<!--#endif-->
list
静的な(列挙)リストから文字列を抽出します。FirstClassデザイナーを参照してください。
構文
@list(<string>, <value>)
説明
<string>は、カンマで区切られた、ゼロで始まる要素のリストです。
等号とそれに続く10進数を使って、その要素とそれ以後の要素のインデックス値を上書きできます。
<value>は、ゼロで始まるインデックス値です。
インデックスが要素の範囲を超えている場合は空の文字列が返され、超えていない場合は対応する要素が返されます。
例
@list("one;two;four=4;five", 2)は文字列「two」を返します。
@list("one;two;four=4;five", 4)は「four」を返します。
@list("one;two;four=4;five", 3)は「」(空の文字列)を返します。
lower
引数Stringのすべての文字を小文字に変換して返します。
注意
ASCII / ISO-8859-1以外の文字セットでのこの関数の動作は定義されていません。
構文
@lower(String)
@upperを参照
例
<!--#set var="str" expr="@lower('This is a mixed case string')"-->
<!-- strは"this is a mixed case string"となります -->
rand
0〜32767の間でランダムな数字を返します。
構文
@rand()
例
<!--#set var="num" expr="@rand()"--><!--#set var="smallnum" expr="@rand()%5"--><!-- smallnumは0〜4の値に制限されます -->
split
定数の区切り文字でリストをデコードします。
@split関数の動作は、Cのstrtok関数とほぼ同じです。この関数を呼び出すと、String内が検索され、最初のSeparatorまで(Separatorは含みません)の内容が返されます。String内にSeparatorがない場合は、String全体が返されます。Stringがインターネットサービススクリプト変数である場合は、該当する部分および最初に出現したSeparatorが変数から取り除かれます。
@splitにはregexpのサポートが追加されました。
構文
@split(String, Separator)
例1
「VAR1」および「VAR2」という2つのインターネットサービススクリプト変数があり、VAR1に値としてあらかじめ「Value1;Value2」が含まれている場合:
次の1回目の呼び出しの後
<!--#set var="VAR2" expr="@split($VAR1, ';')"-->
VAR2には、値「Value1」(最初の区切り文字「;」の直前までのすべての内容)が含まれます。
VAR1には、値「Value2」が含まれます(VAR2に移動されたすべての内容と区切り文字「;」が取り除かれます)。
次の2回目の呼び出しの後
<!--#set var="VAR2" expr="@split($VAR1, ';')"-->
VAR2には、値「Value2」が含まれます(区切り文字「;」が出現しないため、文字列全体が返されます)。
VAR1には、値「」が含まれます(VAR2に移動されたすべての内容が取り除かれて、何も残りません)。
例2
追加されたregexpサポートを使用した場合:
@split("This (is) a test", "/(.+)/")は「This 」を返します。
substr
引数Stringの中で、StartIndexで示される文字からEndIndexの文字までの部分文字列を抽出します。
EndIndexを指定しない場合は、StartIndex以後の文字列全体が返されます。
注意
Cプログラミング言語と同様に、文字のインデックスは1ではなく0から始まるので、開始インデックス「3」は、実際には3番目ではなく4番目の文字を指します。
構文
@substr (String, StartIndex, EndIndex)
例
<!--#echo expr="@substr('abcdef',1,3)"-->
結果:bcd
upper
引数Stringのすべての文字を大文字に変換して返します。
ASCII / ISO-8859-1以外の文字セットでのこの関数の動作は定義されていません。
構文
@upper (String)
注意
文字列が数値として解釈される可能性がある場合は、正しく動作させるために、一重引用符で囲む必要があります(例:@upper('10'))。
例
<!--#set var="str" expr="@upper ('This is a Mixed Case String')"-->
<!-- 結果としてstrに「THIS IS A MIXED CASE STRING」が含まれます-->
URLescape
引数Stringのコピーを、URLで使用するのに適した形式でエスケープ処理して返します。
文字列を「URLに適した」形式にする方法については、RFC 2616のセクション3.2を参照してください。
構文
@URLescpate(String)
例
<!--#echo expr="@URLescape('This is a #1 message')"-->
結果:This%20is%20a%20%231%20message
| ||