Coldfusion ListToArray并使用“==”作为分隔符

时间:2012-08-24 19:08:53

标签: coldfusion coldfusion-9

代码:

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

我期望的是一个带有两个索引的数组,我得到的是一个带有三个索引的数组,CF也在单个等号处分裂。

是否有其他人遇到此行为或可以解释发生了什么?

1 个答案:

答案 0 :(得分:10)

这是预期的行为。如文档中所述,ListToArray使用单字符分隔符(默认情况下)。

一种解决方案是使用拆分:

Temp.split('==')

(这是利用底层的Java string.split方法,该方法在指定的正则表达式的每个匹配项处拆分字符串,并且适用于所有基于Java的CFML引擎,但会产生Java字符串数组 - 使用CF的ArrayAppend和相关函数无法直接操作,除非它是第一个converted。)。

由于您使用的是CF9,您还可以使用新的多字符分隔符标志,方法是将第四个参数设置为true:

ListToArray(Temp,'==',false,true)