从字符串中去除 HTML 井号以创建数字

Strip HTML pound sign from string to create number

我正在尝试创建一个脚本来添加从数据库中提取的两个字符串。该脚本正确提取数据,但字符串包含井号 (£) - 因此数字不会加在一起,因为它们实际上是文本字符串。

var subtotal = "£25";
var shipping = "£5";

var total = subtotal + shipping;

如何从代码中去除井号以使数字相加?

一个简单的方法可能是

var total = parseFloat(subtotal.replace(/[^.0-9]g/,'')) + parseInt(shipping..replace(/[^.0-9]g/,''));

var subtotal = "£19.99";
var shipping = "£3.95";
var total = parseFloat(subtotal.replace(/[^.0-9]/g,'')) + parseFloat(shipping.replace(/[^.0-9]/g,''));

console.log(total);
console.log(total.toFixed(2)); // to round to 2 decimal places

您可以使用带正则表达式的字符串替换方法从字符串中删除除数字和点以外的所有字符,然后对结果调用 parseFloat 以将其转换为数字。

const toNumber = n => parseFloat(n.replace(/[^.0-9]/g, ''));
var subtotal = "£25";
var shipping = "£5";

var total = toNumber(subtotal) + toNumber(shipping);

console.log(total);

感谢大家的帮助。我现在已经做到了,如下所示:

const toNumber = n => parseFloat(n.replace(/[^.0-9]/g, ''));
var subtotal = "£25.53";
var shipping = "£5.30";

var total = toNumber(subtotal) + toNumber(shipping);

document.getElementById("demo").innerHTML =
"The total of your order is: " + total.toFixed(2);

Returns正确总分30.83!