Why is my javascript if statement letting through non alphanumeric characters? [duplicate]

I need to check if a string has only alphanumeric values.
I have this if statement checking that each character in the string can only be 0-9 integers and letters from the alphabet. However, it looks like it is still not catching every non-alphanumeric character for some reason.

 let alphabet = "abcdefghijklmnopqRstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
  let numbers = [0,1,2,3,4,5,6,7,8,9]
  if(string===""){return false}
  string.split("").forEach(char => {
    if(!numbers.includes(char) || !alphabet.includes(char)) {
       return false;
       }

I have been able to manually catch some of the edge cases with these lines but it is not sufficient plus I do not see why they are not already captured by my code above. Is there something wrong about the way I am splitting the string by “”?

if(string.includes(" ")){return false}
if(string.includes("_")){return false}
if(string.includes("!")){return false}
if(string.includes(";")){return false}
if(string.includes(":")){return false}