2

私は Coldfusion を初めて使用するので、この関数を正しく使用するためにどのような形式を使用すればよいかわかりません。

0000411111 を 0411111 に変換したいので、最初の 3 つのゼロを取り除きます

<cfset origValue = "#query.column#"> 
<cfset newValue = ReReplace(origValue, "0+", "", "all")>
<cfoutput>#newValue#</cfoutput>

これにより、すべてのゼロが削除されますが、1 つのゼロだけが保持されます。ちょっと興味があるんだけど。

よろしくお願いいたします。

4

5 に答える 5

5

文字列が常に7文字になる場合は、使用できます

<cfset newValue = numberFormat(000411111,'0000000')>

長さが分からず、常に先頭の 0 を削除して先頭に 1 を残したい場合は、次のようにします。

<cfset newValue = '0' & int(000411111)>
于 2013-04-19T18:51:02.903 に答える
2

最初の 3 文字を常に削除したい場合は、次のright()関数を使用できます。

<cfset newValue = right(query.column, len(query.column)-3>

これにより、文字列の右側から先頭の 3 文字を除くすべての文字が返されます。

于 2013-04-19T18:26:40.500 に答える
2

あなたはそれを2つの異なる方法で行うことができます:

<Cfset newvalue=right(origvalue,len(origvalue)-3>

このメソッドは、左から 3 文字を除いた文字列を返します。

また

<Cfset newvalue=mid(origvalue,4,len(origvalue)-3>

このメソッドは位置 4 から開始し、文字列の残りを取得します。

于 2013-04-19T18:27:17.443 に答える
0

実際に探している正規表現文字列は、文字列の先頭にある 2 つ以上の 0 に一致し、それらを 1 つの 0 に置き換えるためのものです。

これにより、正規表現が得られます^0+0

^文字列の先頭に一致し、0+1 つ以上の 0 に0一致し、2 番目のゼロに一致します。これは、先行ゼロが 1 つしかない場合、何もする必要がないことを意味します。最後に、文字列の先頭にあるものだけを置き換えるだけなので、これを行う必要があるのは 1 回だけです。これにより、CF コードが得られます。

newValue = ReReplace(origValue, "^0+0", "0", "one")

これにより、複数の先行ゼロが単一のゼロに置き換えられますが、最初からゼロがなかった場合はゼロが追加されません。

最後に、正規表現を試すのに適した場所はhttp://gskinner.com/RegExr/です。

于 2013-04-21T14:44:21.823 に答える