function isValidIsraeliID(id) { var id = String(id).trim(); if (id.length > 9 || id.length < 5 || isNaN(id)) return false; // Pad string with zeros up to 9 digits id = id.length < 9 ? ("00000000" + id).slice(-9) : id; return Array .from(id, Number) .reduce((counter, digit, i) => { const step = digit * ((i % 2) + 1); return counter + (step > 9 ? step - 9 : step); }) % 10 === 0; } // Usage ["1234567890","001200343", "231740705", "339677395"].map(function(e) { console.log(e + " is " + (isValidIsraeliID(e) ? "a valid" : "an invalid") + " Israeli ID"); }); // Outputs: // 1234567890 is an invalid Israeli ID // 001200343 is an invalid Israeli ID // 231740705 is a valid Israeli ID // 339677395 is a valid Israeli ID