สแกนสตริงหาตัวเลข 1 หลัก (0-9) แล้วหาผลรวมทั้งหมด
ตัวอย่างโค้ด
const str = 'gdf5jhhj3hbj4hbj3jbb4bbjj3jb5bjjb5bj3';
const sumStringNum = str => {
const strArr = str.split('');
let res = 0;
for (let i = 0; i < strArr.length; i++) {
if (+strArr[i]) {
res += +strArr[i];
}
}
return res;
};
console.log(sumStringNum(str));
ผลลัพธ์
35
วิธีแบบ Regex (สั้นกว่า)
const sumStringNum = str => (str.match(/\d/g) || []).reduce((sum, d) => sum + +d, 0); // หรือ const sumStringNum = str => [...str].filter(c => /\d/.test(c)).reduce((a, b) => a + +b, 0);
match(/\d/g) หาตัวเลขทั้งหมดในสตริง || [] กัน error ถ้าไม่เจอตัวเลข