如何使用jquery正确设置货币格式?

jljoyd4f  于 2022-11-22  发布在  jQuery
关注(0)|答案(8)|浏览(176)

我 不 需要 一 个 掩码 , 但 我 需要 的 东西 , 将 格式化 货币 ( 在 所有 浏览 器 ) , 不 允许 任何 字母 或 特殊 字符 的 类型 。 谢谢 帮助
示例 :
有效 : 50.00 美元
一千 元 五 角 三 分
无效 : $w45.00
34.3 美元/6

du7egjpx

du7egjpx1#

另 一 个 选项 ( 如果 你 使用 ASP.Net 剃刀 视图 ) 是 , 在 你 的 视图 上 你 可以 做

<div>@String.Format("{0:C}", Model.total)</div>

中 的 每 一 个
这 将 正确 地 格式化 它 。 注意 ( item.total 是 双 精度/小数 )
如果 在 jQuery 中 还 可以 使用 Regex

$(".totalSum").text('$' + parseFloat(total, 10).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,").toString());

格式

agyaoht7

agyaoht73#

扩展Melu的答案,您可以这样做,使代码功能化并处理负数量。
示例输出:
五块二毛三

  • 五块二毛三
function formatCurrency(total) {
    var neg = false;
    if(total < 0) {
        neg = true;
        total = Math.abs(total);
    }
    return (neg ? "-$" : '$') + parseFloat(total, 10).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,").toString();
}
o75abkj4

o75abkj44#

作为为什么jQuery FormatCurrency插件是一个很好的答案的推论,我想反驳你的评论:

    1. code.google.com/p/jquery-formatcurrency-不会过滤掉所有字母。您可以只键入一个字母,它不会将其删除。*

是的,formatCurrency()本身不会过滤掉字母:

// only formats currency
$(selector).formatCurrency();

但是包含在formatCurrency插件中的toNumber()可以。
因此,您要执行以下操作:

// removes invalid characters, then formats currency
$(selector).toNumber().formatCurrency();
af7jpaap

af7jpaap5#

使用jquery.inputmask 3.x。请参见here演示
包含文件:

<script src="/assets/jquery.inputmask.js" type="text/javascript"></script>
<script src="/assets/jquery.inputmask.extensions.js" type="text/javascript"></script>
<script src="/assets/jquery.inputmask.numeric.extensions.js" type="text/javascript"></script>

并编码为

$(selector).inputmask('decimal',
  { 'alias': 'numeric',
    'groupSeparator': '.',
    'autoGroup': true,
    'digits': 2,
    'radixPoint': ",",
    'digitsOptional': false,
    'allowMinus': false,
    'prefix': '$ ',
    'placeholder': '0'
  }
);

亮点:

  • 使用方便
  • 任何可选部件都在掩码中
  • 可以定义隐藏复杂性的别名
  • 日期/日期时间掩码
  • 数字掩码
  • 大量回调
  • 非贪婪掩码
  • 许多功能可以通过选项启用/禁用/配置
  • 支持只读/禁用/dir=“rtl”属性
  • 支持数据输入掩码属性
  • 多掩模支架
  • 正则掩码支持
  • 动态掩模支持
  • 预处理掩模支架
  • 不使用输入元素格式化/验证值
66bbxpm5

66bbxpm56#

我以前用的是jquery格式货币插件,但是最近它一直很bug,我只需要USD/CAD的格式,所以我写了自己的自动格式。

$(".currencyMask").change(function () {
            if (!$.isNumeric($(this).val()))
                $(this).val('0').trigger('change');

            $(this).val(parseFloat($(this).val(), 10).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,").toString());
        });

只需设置任何输入的类,将其格式化为货币<input type="text" class="currencyMask" />,它将在任何浏览器中完美地格式化它。

dced5bon

dced5bon7#

尝试使用jQuery**(无插件)**:
第一个
编辑:新检查值是否有效/无效

9w11ddsr

9w11ddsr8#

JavaScript已经有了它。

var cur = function (amt) {
    return Intl.NumberFormat('en-US', { style: "currency", currency: "USD" }).format(amt);
};

相关问题