首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CFSpreadsheet格式帮助

CFSpreadsheet格式帮助
EN

Stack Overflow用户
提问于 2016-03-02 10:00:04
回答 2查看 111关注 0票数 0

我有一个电子表格查询返回结果。负数的格式为($$123.12),正数的格式为("$$123.12")。

在插入到数据库中之前,我需要将负数格式化为-123.12,将正数格式化为123.12。为此,我需要使用哪种类型的正则表达式?或者,我可以使用ColdFusion的Replace() function..and吗?如果可以,如何使用?

EN

回答 2

Stack Overflow用户

发布于 2016-03-02 21:56:10

我们创建了xList作为变量的持有者,以模拟循环查询。

假设负数总是包含"[“,而正数没有括号,我们将循环列表并检查"[”以格式化负数,然后为没有括号的值格式化正数。

代码语言:javascript
复制
<cfset xlist = '([$$123.12]),("$$123.12")'>


<cfloop list="#xlist#" index="x">       

    <cfif FindNoCase("[", x )>
        <cfset xVal = "-" & rereplaceNoCase(x,"[^0-9.]","","all" )>
    <cfelse>    
        <cfset xVal = rereplaceNoCase(x,"[^0-9.]","","all" )>
    </cfif> 

    <cfdump var="#xVal#"><br>
</cfloop>
票数 2
EN

Stack Overflow用户

发布于 2016-03-02 22:41:48

这是我做类似事情时的一个稍微修改过的版本。基本上,我将括号视为负号,并去掉其他不相关的字符,如$。我不清楚括号是否是你答案的一部分,在这种情况下,这些也需要去掉。

代码语言:javascript
复制
<cffunction name="launderMoney">
    <cfargument name="value">

    <cfset var multiplier = 1>
    <cfset arguments.value = Replace(trim(arguments.value), '"', "", "all")>
    <cfif Find("[", arguments.value)>
        <cfset multiplier = -1>
        <cfset arguments.value = Replace(Replace(arguments.value, "[", "", "all"), "]", "", "all")>
    </cfif>

    <cfset var temp = Trim(Replace(Replace(trim(arguments.value), "$", "", "all"), ",", "", "all"))>
    <cfif isNumeric(temp)>
        <cfset temp *= multiplier>
    </cfif>

    <cfreturn temp>
</cffunction>

<p>#LaunderMoney('"$$123.12"')#</p>

<p>#LaunderMoney('[$$123.12]')#</p>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35737063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档