tutorial - ColdFusion y la coma final
coldfusion tutorial español (6)
Comprueba el carácter más a la derecha: si se trata de una coma, configura el hilo a una subcadena del original, con una longitud de -1.
Recortar la cadena garantiza que los espacios después de la coma final no interfieran con este método.
<cfset myStr = "hello, goodbye,">
<cfset myStr = trim(myStr)>
<cfif right(myStr, 1) is ",">
<cfset myStr = left(myStr, len(myStr)-1)>
</cfif>
¿Cómo elimino una coma final de una cadena en ColdFusion?
Para agregar a la respuesta de Patrick. Para reemplazar una o más comas al final, use lo siguiente: reReplace (myString, ", + $", "", "all")
Ejemplo a continuación
<cfset myString = "This is the string, with training commas,,,">
<cfset onlyTheLastTrailingComma = reReplace(myString, ",$", "", "all")>
<cfset allTrailingCommas = reReplace(myString, ",+$", "", "all")>
<cfoutput>#onlyTheLastTrailingComma#<br />#allTrailingCommas#</cfoutput>
Para eliminar una coma final (si existe):
REReplace(list, ",$", "")
Para quitar una o más comas finales:
REReplace(list, ",+$", "")
Esto es probablemente más un golpe de rendimiento que Regex en una lista, pero a veces, cuando termino de filtrar / corregir datos sucios, lo convierto en una matriz y luego lo vuelvo a convertir en una lista.
<cfset someVariable = arrayToList(listToArray(someVariable, ","), ",")>
Es hacer trampa, pero funciona ;-)
También es fácil:
<cfset CleanList = ListChangeDelims(DirtyList, ",", ",")>
Explicación: Esto aprovecha el hecho de que las funciones de la lista CF ignoran los elementos vacíos. ListChangeDelims()
último "elemento".
Retire "," de ambos lados, solo el lado derecho o solo el lado izquierdo
<cfset theFunnyList = ",!@2ed32,a,b,c,d,%442,d,a">
Reemplace personajes divertidos y separe con coma
<cfset theList = rereplace(theFunnyList, "[^A-Za-z0-9]+", ",", "all")>
<cfset theList = trim(theList)>
<cfif left(theList, 1) is "," and right(theList, 1) is ",">
<cfset theList = right(theList, len(theList)-1)>
<cfset theList = left(theList, len(theList)-1)>
<cfelseif right(theList, 1) is ",">
<cfset theList = left(theList, len(theList)-1)>
<cfelseif left(theList, 1) is ",">
<cfset theList = right(theList, len(theList)-1)>
</cfif>
Lista de clasificación (numérica a AZ) ASCending
<cfoutput> #ListSort("#theList#", "text", "ASC", ",;")# </cfoutput>