12

ColdFusionの文字列から末尾のカンマを削除するにはどうすればよいですか?

4

6 に答える 6

25

末尾のコンマを削除するには (存在する場合):

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

1 つまたは複数の末尾のコンマを削除するには:

REReplace(list, ",+$", "")
于 2008-10-08T12:24:07.997 に答える
15

こちらも簡単:

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

説明: これは、CF リスト関数が空の要素を無視するという事実を利用しています。ListChangeDelims()その結果、最後の「要素」が取り除かれます。

于 2008-10-20T08:11:17.973 に答える
5

右端の文字を確認します。カンマの場合は、文字列を元の文字列の長さ-1の部分文字列に設定します。

文字列をトリミングすると、末尾のコンマの後のスペースがこのメソッドに干渉しないようになります。

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

<cfif right(myStr, 1) is ",">
    <cfset myStr = left(myStr, len(myStr)-1)>
</cfif>
于 2008-10-08T12:23:29.103 に答える
4

これはおそらくリストを正規表現するよりもパフォーマンスに影響しますが、ダーティデータをフィルタリング/修正することになると、それを配列に変換してからリストに戻すことがあります。


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

不正行為ですが、機能します;-)

于 2008-10-13T15:30:38.680 に答える
2

パトリックの答えに追加します。末尾の 1 つ以上のカンマを置き換えるには、次のようにします: 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>
于 2008-10-08T12:35:43.510 に答える
1

両側、右側のみ、左側のみの「,」を削除

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

リストの並べ替え (数値から AZ へ) ASCending

<cfoutput> #ListSort("#theList#", "text", "ASC", ",;")# </cfoutput>
于 2010-02-18T18:17:30.393 に答える