JavaScript 中将带逗号的字符串解析为数字

JavaScript 中要将带逗号的字符串解析为数字:

  1. 使用 replace() 方法从字符串中删除所有逗号。
  2. replace() 方法将返回一个不包含逗号的新字符串。
  3. 将字符串转换为数字。
const str = '12,000,000.50';

const num = parseFloat(str.replace(/,/g, ''));

console.log(num); // 👉️ 123000000.5

我们使用 String.replace 方法从字符串中删除所有逗号。

该方法采用的第一个参数是正则表达式,第二个参数是正则表达式的每个匹配项的替换。

正斜杠 // 标记正则表达式的开始和结束。

我们只匹配正则表达式中的一个逗号。

const str = '12,000,000.50';

const num = parseFloat(str.replace(/,/g, ''));

console.log(num); // 👉️ 123000000.5

我们使用了 g(全局)标志,因为我们想要匹配字符串中所有出现的逗号,而不仅仅是第一次出现的逗号。

如果我们在阅读正则表达式时需要帮助,请查看我们的正则表达式教程 。

我们想删除所有逗号,所以我们用一个空字符串替换每个逗号。

最后一步是用结果调用 parseFloat 函数。

parseFloat 函数解析提供的字符串并返回一个浮点数。

如果 parseFloat 函数无法将字符串转换为数字,因为字符串包含非数字字符,则该方法返回 NaN(不是数字)。

下面是一些使用 parseFloat 函数的例子。

console.log(parseFloat('100')); // 👉️ 100
console.log(parseFloat('100.5')); // 👉️ 100.5
console.log(parseFloat(10.5)); // 👉️ 10.5
console.log(parseFloat('a123')); //👉️ NaN

如果希望避免使用正则表达式,请使用 String.replaceAll 方法。

const str = '12,000,000.50';

const num = parseFloat(str.replaceAll(',', ''));

console.log(num); // 👉️ 123000000.5

此代码片段实现了相同的结果。 但是,我们向 replaceAll() 方法传递了一个字符串而不是正则表达式。

第二个参数是每个匹配项的替换。