我想替换前两位数字并将其替换为0 如果它以0开头,则无需更改任何内容。 示例: 44 5656到 0 56 ....
<cfif number (BEGIN WITH?) "44">
<cfset number = Right(number , Len(number )-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>