Viết hàm trích xuất tất cả chữ số từ chuỗi và ghép thành một số nguyên (khác với parseInt chỉ lấy số đầu tiên).
Ví dụ
Chuỗi: '454ffdg54hg53'
parseInt trả về 454, nhưng ta muốn 4545453 (tất cả chữ số).
Giải pháp
Mã triển khai:
const numStr = '454ffdg54hg53';
const parseInteger = numStr => {
let res = 0;
for (let i = 0; i < numStr.length; i++) {
const digit = +numStr[i];
if (!isNaN(digit)) {
res = res * 10 + digit;
}
}
return res;
};
console.log(parseInteger(numStr));
Kết quả
Đầu ra trong console:
4545453
Cách ngắn gọn: +numStr.replace(/\D/g, '') hoặc numStr.match(/\d/g).join('').