5

我正在尝试清理提交的文件名。

我正在使用replacelist(filename,"',##,&, ",",,and,-")哪个应该

  • 删除'#
  • 替换&and
  • 用 . 替换空格-

当给定时"apost's & pound#.JPG",而不是返回:

    "aposts-and-pound.jpg" 

替换列表返回:

    "apostandspound-.JPG"

我正在使用 ColdFusion 10。

4

1 回答 1

8

这不是重新排序 - 这是由于 CF 列表处理的工作方式 - 空元素被忽略/删除。

一些 List~ 字符串处理函数有一个额外的参数来改变这种行为(即将空元素视为空字符串),但 ReplaceList 似乎没有。

您可以通过在替换的单独步骤中执行删除来解决此问题:

<cfset NewFilename = rereplace(Filename,"['##]","","all") />
<cfset NewFilename = replacelist(NewFilename,"&, ","and,-") />

或者

replacelist( rereplace(filename,"['##]","","all") , "&, " , "and,-" )
于 2013-01-24T17:14:27.137 回答