使用javascript汇总html字符串数

使用javascript汇总html字符串数,javascript,html,Javascript,Html,您好,我有一个函数,它返回标记中的数字,格式如下: <p class="numbers">123 + 456 + 789</p> 123+456+789 有没有办法在javascript中执行另一个函数或其他操作来汇总所有数字并将其存储到一个变量中 谢谢 这应该可以做到: var string = "<p class="numbers">123 + 456 + 789</p>"; var numbers = string.split(">

您好,我有一个函数,它返回
标记中的数字,格式如下:

<p class="numbers">123 + 456 + 789</p>

123+456+789

有没有办法在javascript中执行另一个函数或其他操作来汇总所有数字并将其存储到一个变量中

谢谢

这应该可以做到:

var string = "<p class="numbers">123 + 456 + 789</p>";
var numbers = string.split(">")[1].split("<")[0].split("+");
var i = 0;
var sum = 0;
while(i < numbers.length){
    sum += parseInt(numbers[i]);
    i += 1;
}
return sum;
var string=“

123+456+789

”; 变量编号=字符串。拆分(“>”[1]。拆分(“

您可以使用
Array.prototype.reduce()

var n=document.querySelector(“.number”).textContent;
var nums=n.replace(/\s/g,“”).match(/^\d+|[+-]\d+/g);
var res=nums.reduce((a,b)=>数字(a)+数字(b));
document.body.innerHTML+=`=${res}`;

123+456+789

var x=document.querySelector('.numbers').textContent.split(“+”).map(Number)

var y=x.reduce(函数(add,num){return add+num})


控制台日志(y)

可以帮助eval似乎可以完成任务。谢谢!eval是邪恶的。使用它时要小心@cup_ofok谢谢你让我知道@Anikislamabh可能重复一件事要小心——它假设数字是整数。这可能是一个安全的假设,也可能不是。但是如果你有123.5.Y这样的值,它会给出错误的答案是的,这是真的,但是如果不是,你可以在“parseFloat”中交换,所以如果你要使用
parseInt
你应该包括基数以保证完整性:
parseInt(Number[i],10)
。如果你不需要支持旧的浏览器(比如IE 11),那么这应该不是一个大问题是parseInt/parseFloat的一个很好的替代品。谢谢你的回答。我给了你一个向上的投票,但我已经选择了andys的答案。再次谢谢。如果字符串的中间部分是
-456
,会发生什么?这不是问题。@Andy很公平
// Grab the element
const para = document.querySelector('.numbers');

// Convert the text content to an array and
// make the text number values into actual numbers
const numbers = para.textContent.split(' + ').map(Number);

// Use `reduce` to sum the numbers
const total = numbers.reduce((p, c) => p + c);