如何用jQuery或JavaScript将货币字符串转换为double?

在前端开发中,经常需要对货币进行格式化和计算。但是,由于浮点数的精度问题,直接将货币字符串转换为double存在一定的风险。本文将介绍如何使用jQuery或JavaScript将货币字符串安全地转换为double,并提供示例代码。

1. 货币字符串的格式

在转换货币字符串之前,首先要了解货币字符串的格式。货币字符串通常包含正负符号、整数位和小数位,例如:

  • $100.00
  • ¥-9,999.99
  • -€0.99

其中,正负符号可能不存在,整数位可以有多位数字,小数位固定为两位,并且可能包含千位分隔符和货币符号。

2. 将货币字符串转换为double

在将货币字符串转换为double之前,需要先将字符串中的非数字字符去除,然后将其转换为数字。以下是使用jQuery和JavaScript分别实现该功能的示例代码:

jQuery实现

-------- ------------------ -
  --- --- - ---------------------------------- -----
  ------ ---------- - - - ----
-

解释:

  • str.replace(/[^\d.-]/g, ''):用正则表达式匹配非数字、非小数点和非负号的字符,并替换为空字符串。
  • parseFloat:将字符串转换为浮点数,如果无法转换,则返回NaN。
  • isNaN(num) ? 0 : num:如果num是NaN,则返回0,否则返回num。

JavaScript实现

-------- ------------------ -
  --- --- - ------------------------------------ -----
  ------ ---------- - - - ----
-

解释:

  • /[^0-9.-]+/g:用正则表达式匹配非数字、非小数点和非负号的字符(与jQuery实现略有不同),并替换为空字符串。
  • 其余部分与jQuery实现相同。

3. 示例代码

以下是一个使用上述函数将货币字符串转换为double的例子:

--------- -----
------
------
  ----- ----------------
  -------------- -------- ------ -- --------------
-------
------
  ------ ----------- ------------- ----------------
  ------- ------------------------------------
  -- ----------------

  --------
    -------- ------------------ -
      --- --- - ---------------------------------- -----
      ------ ---------- - - - ----
    -

    -------- --------- -
      --- --- - ------------------------------------------
      --- --- - -------------------
      ------------------------------------------- - ---------------
    -
  ---------
-------
-------

该示例中包含一个文本框和一个按钮,点击按钮后将文本框中的货币字符串转换为double,并在页面上显示结果。在示例代码中,使用了jQuery实现parseCurrency函数,但也可以根据需要使用JavaScript实现。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/9257