如何用一位Coldfusion替换前两位数字

Ste*_*tef 3 coldfusion coldfusion-9 cfml

我想替换前两位数字并将其替换为0如果它以0开头,则无需更改任何内容.示例:44 5656到0 56 ....

<cfif number (BEGIN WITH?) "44">
<cfset number = Right(number , Len(number )-2) /> 
Run Code Online (Sandbox Code Playgroud)

但这只会删除前两位数字.谢谢你的支持

Ale*_*ban 5

看起来你要将你的数字" 以0开头 "作为字符串.试试这个:

<!--- // a number that does not start with zero --->
<cfset theNumber = "445656" />
<cfset theNumber = left(theNumber, 1) is 0 ? theNumber : REReplaceNoCase(theNumber, "^[0-9]{2}", 0) />
<!--- // returns 05656 --->
<cfoutput>#theNumber#</cfoutput>

<hr />

<!--- // a number that starts with zero --->
<cfset theNumber = "05656" />
<cfset theNumber = left(theNumber, 1) is 0 ? theNumber : REReplaceNoCase(theNumber, "^[0-9]{2}", 0) />
<!--- // returns 05656 --->
<cfoutput>#theNumber#</cfoutput>
Run Code Online (Sandbox Code Playgroud)

如果您的号码始终以0或44开头,则可以使用

<cfset theNumber = left(theNumber, 1) is 0 
                    ? theNumber 
                    : REReplaceNoCase(theNumber, "^[4]{2}", 0) /> 
Run Code Online (Sandbox Code Playgroud)

更新:另外,阅读评论,那里有一些好处.

  • 你不需要`REReplaceNoCase()`(模式中没有字母); 你可以使用`REReplace("^ 44",theNumber,"0")` (2认同)