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

时间:2018-04-03 22:04:48

标签: coldfusion coldfusion-9 cfml

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

<cfif number (BEGIN WITH?) "44">
<cfset number = Right(number , Len(number )-2) /> 

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

2 个答案:

答案 0 :(得分: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>

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

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

更新:   另外,阅读评论,其中有一些好处。

答案 1 :(得分:1)

这个reReplace()可以在任何字符串上运行,只有在字符串以44开头时才会修改并替换为0.

<cfscript>
   phoneNumber = "44556677";
   phoneNumber = reReplace(phoneNumber, "^44", "0");
   writeOutput(phoneNumber);
</cfscript>