首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用正则表达式设置带减号的货币格式

使用正则表达式设置带减号的货币格式
EN

Stack Overflow用户
提问于 2014-08-27 18:23:20
回答 2查看 109关注 0票数 0

我有一个简单的功能,就是将字符串格式化为货币-它每3个字符添加一个空格:

代码语言:javascript
复制
function addSpace(n) {
    var rx = /(\d+)(\d{3})/;
    return String(n).replace(/^\d+/, function (w) {
        while (rx.test(w)) {
            w = w.replace(rx, '$1 $2');
        }
        return w;
    });
}

所以当我像这样使用它时:

代码语言:javascript
复制
addSpace("1234567.89")

我得到了:

代码语言:javascript
复制
"1 234 567.89"

但是对于负数,我不能得到相同的行为。

我想要addSpace("-1234567.89")版的-1 234 567.89

我应该如何改变我的函数才能得到这个结果呢?我试着在rx的开头添加-?,但是没有帮助。

我知道我可以在字符串中搜索-,如果找到了,就把它加到开头,但我想避免这种情况。

EN

回答 2

Stack Overflow用户

发布于 2014-08-27 18:27:52

只需将您的regex修改为:

代码语言:javascript
复制
/^-?\d+/

输出:

代码语言:javascript
复制
"-1 234 567.89"

Demo

票数 2
EN

Stack Overflow用户

发布于 2014-08-27 18:28:56

-作为可选参数传递,使用/^-?\d+/作为RegEX

代码语言:javascript
复制
return String(n).replace(/^-?\d+/, function (w) {
    while (rx.test(w)) {
        w = w.replace(rx, '$1 $2');
    }
    return w;
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25524653

复制
相关文章

相似问题

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