如何在ColdFusion中返回部分字符串

The*_*Man 5 coldfusion

可以说我有一个字符串The big brown fox jumped<br> over the fence. 如何指定我只保留<br>标记前的字符,而除去其余字符?

Ofe*_*all 5

我使用类似的东西,不知道它是否更有效。

<cfset string = "The big brown fox jumped<br> over the fence.">

<cfset firstPiece = listGetAt(string, 1, "<br>")>
<cfoutput>#firstPiece#</cfoutput>
Run Code Online (Sandbox Code Playgroud)

我喜欢它,因为我先确定输出,然后再确定输出。但是orangepips很好,因为您可以根据上下文定制输出。

编辑

如注释中所指出的,由于CF将每个字符视为定界符的方式,上述代码确实产生了“ The”。

<cfset firstPiece = listGetAt(string, 1, "<")产生“大棕狐跳”。

从CF文档

定界符

字符串或包含一个的变量。分隔列表元素的字符。默认值为逗号。

如果此参数包含多个字符,则ColdFusion将每个字符的每次出现都作为分隔符进行处理。

  • 不,CF将分隔符视为单独的字符。因此最终结果只是“ The”。 (3认同)
  • @nick-只要确保“ &lt;”在您的情况下有效即可。如果您的子字符串可能包含“ &lt;”或除&lt;br&gt;之外的其他html标记,则应使用其他名称。如果您不想使用正则表达式,那么findNoCase和left / mid的组合也应该起作用。 (2认同)