2

コード:

<cfset LOCAL.temp = 'something==a descript >= ive value' />
<cfdump var="#ListToArray(LOCAL.temp, '==')#" />

私が期待しているのは、2つのインデックスを持つ配列であり、3つのインデックスを持つ配列であり、CFも単一の等号で分割されています。

他の誰かがこの行動を経験していますか、または何が起こっているのか説明できますか?

4

1 に答える 1

10

これは予想される動作です。ドキュメントで説明されているように、ListToArrayは1文字の区切り文字を使用します(デフォルト)。

1つの解決策は、splitを使用することです。

Temp.split('==')

(これは、基になるJava string.splitメソッドを利用しています。このメソッドは、指定された正規表現の一致ごとに文字列を分割し、すべてのJavaベースのCFMLエンジンで機能しますが、Java文字列配列を生成します。これは直接操作できません。 CFのArrayAppendおよび関連する関数を使用します。ただし、最初に変換された場合を除きます。)

CF9を使用しているため、4番目の引数をtrueに設定することにより、新しい複数文字の区切り文字フラグを使用することもできます。

ListToArray(Temp,'==',false,true)
于 2012-08-24T19:11:59.770 に答える