GETTOKEN |
説明 delimiters パラメータ内のリストのトークンが文字列内に存在するかどうかを調べます。
戻り値 文字列の index 位置で検出されたトークンの文字列。index の値が文字列内のトークンの数よりも大きい場合は空の文字列が返されます。
カテゴリ 文字列関数
関数のシンタックス
    GetToken(string, index [, delimiters ])
関連項目 Left、Right、Mid、SpanExcluding、SpanIncluding
パラメータ
使用方法 次の例は、この関数の動作を示しています。 例 A: 次のコードを検討します。
    GetToken("red,blue:;red,black,tan:;red,pink,brown:;red,three", 2, ":;")
この関数の呼び出しでは、区切り文字 ":;" を使用して、文字列から 2 番めの要素をリクエストしています。出力は次のようになります。
    red,black,tan
例 B: 次のコードを検討します。
    <cfset mystring = "four,"
    & #chr(32)# & #chr(9)# & #chr(10)#
    & ",five, nine,zero:;"
    & #chr(10)#
    & "nine,ten:,eleven:;twelve:;thirteen,"
    & #chr(32)# & #chr(9)# & #chr(10)#
    & ",four">
    <cfoutput>
    #mystring#<br><br>
    </cfoutput>
出力は次のようになります。
    four,
    ,five, nine,zero:;
    nine,ten:,eleven:;twelve:;thirteen,
    ,four
GetToken 関数は、明示的な空白文字、タブ文字、または改行文字をパラメータの区切り文字として認識します (空白文字を指定するコードは chr(32)、タブ文字は chr(9)、および改行文字は chr(10) となります)。 この例での文字列 mystring には、次の文字があります。 部分文字列の "four," と ",five" の間に強制スペース "five," と "nine" の間にリテラルスペース "ten:," と "eleven," の間にリテラルスペース "thirteen," と ",four" の間に強制スペース mystring に対する次の呼び出しでは、delimiters に空白は指定されていません (省略されています)。したがって、この関数では空白文字は string の区切り文字として使用されます。
    <br>
    <cfoutput>
    GetToken(mystring, 3):#GetToken(mystring, 3)#
    </cfoutput><br>
このコードの出力は次のようになります。
    GetToken(mystring, 3):nine,zero:;
ここでは関数によって 3 番めの区切り文字が検出され、その直前の、2 番めと 3 番めの区切り文字の間の部分文字列が返されます。この部分文字列は "nine,zero:;" です。 例 C: 次のコードを検討します。
    <cfset mystring2 = "four,"
    &#chr(9)# & #chr(10)#
    & ",five,nine,zero:;"
    & #chr(10)#
    & "nine,ten:,eleven:;twelve:;thirteen,"
    & #chr(9)# & #chr(10)# & ",four">
    <cfoutput>
    #mystring2#<br>
    </cfoutput>
出力は次のようになります。
    four,
    ,five,nine,zero:;
    nine,ten:,eleven:;twelve:;thirteen,
    ,four
次は mystring2 に対する呼び出しです。
    <cfoutput>
    GetToken(mystring2, 2):#GetToken(mystring2, 2)#
    </cfoutput>
出力は次のようになります。
    GetToken(mystring2, 2):,five,nine,zero:;
ここでは関数によって 2 番めの区切り文字が検出され、その直前の、最初の区切り文字と 2 番めの区切り文字の間の部分文字列が返されます。この部分文字列は ",five,nine,zero:;" です。
例
    <h3>GetToken の例</h3>
    <cfif IsDefined("FORM.yourString")>
    <!--- 区切り文字を設定 --->
    <cfif FORM.yourDelimiter is not "">
          <cfset yourDelimiter = FORM.yourDelimiter>
       <cfelse>
          <cfset yourDelimiter = " ">
    </cfif>
    <!--- リスト内の要素の数が、返すために検索された要素の数以上であるかどうかを調べる --->
    <cfif ListLen(FORM.yourString, yourDelimiter) GTE FORM.returnElement>
       <cfoutput>
       <p>"#yourDelimiter#" で区切られた #FORM.yourString# 内の
       #FORM.ReturnElement# 要素 :
       <br>is:#GetToken(FORM.yourString, FORM.returnElement, yourDelimiter)#
       </cfoutput>
    ...

STRING |
文字列、または文字列を含んでいる変数です。検索対象の文字列を指定します。

INDEX |
正の整数またはそれを含んでいる変数です。トークンの位置を表します。

DELIMITERS |
文字列、または文字列を含んでいる変数です。区切り文字の区切りリストです。要素は複数の文字で 構成することができます。
区切り文字のデフォルトのリストは、空白文字、タブ文字、改行文字、またはそれらのコード "chr(32)"、"chr(9)"、"chr(10)" です。
リストのデフォルトの区切り文字は、カンマです。