我有一些动态数据,给我这样的东西:
123,151425,15641,12
Run Code Online (Sandbox Code Playgroud)
我需要删除最后一个逗号之后的所有内容,以便显示:
123,151425,15641
Run Code Online (Sandbox Code Playgroud)
我有这个代码,但它只删除了最后一个逗号.我需要删除逗号及其后的所有内容.
<cfset NewString = ReReplace(OldString, '(.*),', '\1')>
<cfoutput>
#NewString#
</cfoutput>
Run Code Online (Sandbox Code Playgroud)
使用ListDeleteAt(),ListLen()用于获取最后一个元素的位置.
ListDeleteAt(list, position [, delimiters ])Run Code Online (Sandbox Code Playgroud)
这应该做你想做的。
<cfif ListLen(OldString) GT 1>
<cfset NewString = ListDeleteAt(OldString,ListLen(OldString))>
</cfif>
Run Code Online (Sandbox Code Playgroud)
如果您希望在删除末尾的元素数量上有更大的灵活性,CFLib.org中的ListDeleteRight会很有用。
<cfscript>
/**
* Deletes the n rightmost elements from the specified list.
* Modified by RCamden
*
* @param list The list to modify.
* @param numElements The number of elements to delete.
* @param delimiter The delimiter to use. Defaults to a comma.
* @return Returns a string.
* @author Shaun Ambrose (shaun.ambrose@arcorsys.com)
* @version 1, April 24, 2002
*/
function ListDeleteRight(list, numElements) {
var i=0;
var delimiter=",";
if (Arraylen(arguments) gt 2) {
delimiter=arguments[3];
}
if (numElements gt ListLen(list, delimiter)) return "";
for (i=1; i lte numElements; i=i+1) {
list=listDeleteAt(list, listLen(list, delimiter), delimiter);
}
return list;
}
</cfscript>
Run Code Online (Sandbox Code Playgroud)
用法:
ListDeleteRight(list, numElements [, delimiter])
Run Code Online (Sandbox Code Playgroud)
例子:
<cfset NewString = ListDeleteRight(OldString,1)>
Run Code Online (Sandbox Code Playgroud)