我正在尝试计算仅数字标记的总和,而不是附加到单词的数字。
例子
"11 M22 33"
— 总和将为 44,因为 22 附加到 M
我写了这个函数,但它似乎将所有数字相加。如何使用正则表达式仅隔离数字标记?
<FORM>
<input type="text" name="phrase" id="calc" value="Enter code" />
<input type="button" value="calcule" onclick="lasomme();" />
<input type="button" value="invers" onclick="inverser();" />
</FORM>
<script>
function lasomme()
{
/*var calcule = document.getElementById("calc").value;
alert(calcule);*/
var k = /^[A-Za-z\-éèàùâêûîôäëüïö]+$/;
var r = /\d+/g;
var s = document.getElementById("calc").value;
var m;
var sam =0;
while ((m = k.r.exec(s)) != null) {
sam += parseInt(m);
m++;
}
alert (sam);
}
</script>
有没有办法只计算数字而不计算附加的数字?
谢谢
最佳答案
给你
str = "11 M22 33";
sum = str.match(/\b\d+\b/g).reduce((a, b) => Number(a) + Number(b));
console.log(sum);
\b
是单词边界元符号,它确保表达式只匹配作为单独单词的数字。
关于javascript - 仅识别输入中的数字标记 (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44251806/