我想清理提交的文件名。ColdFusion替换列表重新排列返回的字符串
我使用replacelist(filename,"',##,&, ",",,and,-")
应
- 删除
'
和#
- 取代
&
与and
- 与
-
替代空间。
当给"apost's & pound#.JPG"
,而不是返回:
"aposts-and-pound.jpg"
replaceList回报:
"apostandspound-.JPG"
我使用ColdFusion 10
我想清理提交的文件名。ColdFusion替换列表重新排列返回的字符串
我使用replacelist(filename,"',##,&, ",",,and,-")
应
'
和#
&
与and
-
替代空间。当给"apost's & pound#.JPG"
,而不是返回:
"aposts-and-pound.jpg"
replaceList回报:
"apostandspound-.JPG"
我使用ColdFusion 10
这不是重新排序 - 这是由于CF列表处理如何工作 - 空元素被忽略/删除。
一些List〜字符串处理函数有一个额外的参数来改变这种行为(即将空元素作为空字符串处理),但是ReplaceList不会出现。
您可以在一个单独的步骤的替代品做清除解决这个问题:
<cfset NewFilename = rereplace(Filename,"['##]","","all") />
<cfset NewFilename = replacelist(NewFilename,"&, ","and,-") />
或
replacelist(rereplace(filename,"['##]","","all") , "&, " , "and,-")
你可能想在'replaceList()',@Peter中为这个短缩放提出一个增强请求? –
这里你去:https://bugbase.adobe.com/index.cfm?event=bug&id=3489021 –
嗯,即将为Railo也提出问题,但看起来它已经像预期的那样行事了(不需要IncludeEmptyFields )。现在我不知道是否值得提出一个兼容性问题,因为这几乎可以肯定是首选的行为,并希望能够随CF一起改变? :/ –
+1从一个1计时器一个很好的问题。欢迎来到stackoverflow :) – Leigh