ColdFusion и запятая - PullRequest
       9

ColdFusion и запятая

11 голосов
/ 08 октября 2008

Как удалить запятую из строки в ColdFusion?

Ответы [ 6 ]

23 голосов
/ 08 октября 2008

Чтобы удалить запятую (если она существует):

REReplace(list, ",$", "")

Чтобы удалить одну или несколько запятых:

REReplace(list, ",+$", "")
15 голосов
/ 20 октября 2008

Также просто:

<cfset CleanList = ListChangeDelims(DirtyList, ",", ",")>

Объяснение: Это использует тот факт, что функции списка CF игнорируют пустые элементы. ListChangeDelims() следовательно удаляет этот последний «элемент».

5 голосов
/ 08 октября 2008

Проверьте крайний правый символ - если это запятая, установите строку в подстроку оригинала длиной -1.

Обрезка строки гарантирует, что пробелы после запятой не будут мешать этому методу.

<cfset myStr = "hello, goodbye,">
<cfset myStr = trim(myStr)>

<cfif right(myStr, 1) is ",">
    <cfset myStr = left(myStr, len(myStr)-1)>
</cfif>
4 голосов
/ 13 октября 2008

Вероятно, это скорее удар по производительности, чем регулярное выражение списка, но иногда, когда я заканчиваю фильтрацией / исправлением грязных данных, я преобразую их в массив, а затем преобразую обратно в список.


<cfset someVariable = arrayToList(listToArray(someVariable, ","), ",")>

Это обман, но это работает; -)

2 голосов
/ 08 октября 2008

Чтобы добавить ответ Патрика. Чтобы заменить одну или несколько запятых в конце, используйте следующее: reReplace (myString, ", + $", "", "all")

Пример ниже

<cfset myString = "This is the string, with training commas,,,">
<cfset onlyTheLastTrailingComma = reReplace(myString, ",$", "", "all")>
<cfset allTrailingCommas = reReplace(myString, ",+$", "", "all")>
<cfoutput>#onlyTheLastTrailingComma#<br />#allTrailingCommas#</cfoutput>
1 голос
/ 18 февраля 2010

Удалить "," с обеих сторон, только с правой стороны или только с левой стороны

<cfset theFunnyList = ",!@2ed32,a,b,c,d,%442,d,a">

Замените забавных персонажей и отделяйте их запятой

<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>

Сортировка списка (от нумерации до A-Z) ASCending

<cfoutput> #ListSort("#theList#", "text", "ASC", ",;")# </cfoutput>
...