JSFiddle - React, Tailwind, and code Playground

by shivaay123

JavaScript

const validCardNumber = numb => {

  const regex = new RegExp("^[0-9]{13,19}$");
  if (!regex.test(numb)) {
    return false;
  }

  return luhnck(numb);
}

const luhnck = val => {
  let validsum = 0;
  let k = 1;

  for (let l = val.length - 1; l >= 0; l--) {
    let calck = 0;

    calck = Number(val.charAt(l)) * k;

    if (calck > 9) {
      validsum = validsum + 1;
      calck = calck - 10;
    }


    validsum = validsum + calck;

    if (k == 1) {
      k = 2;
    } else {
      k = 1;
    }
  }


  return (validsum % 10) == 0;
}
console.log(validCardNumber("0987654321456012"));