http://developer.netscape.com/docs/examples/javascript/formval/overview.html

解决方案 »

  1.   

    view-source:http://developer.netscape.com/docs/examples/javascript/formval/FormChek.js代码
    function isCreditCard(st) {
      // Encoding only works on cards with less than 19 digits
      if (st.length > 19)
        return (false);  sum = 0; mul = 1; l = st.length;
      for (i = 0; i < l; i++) {
        digit = st.substring(l-i-1,l-i);
        tproduct = parseInt(digit ,10)*mul;
        if (tproduct >= 10)
          sum += (tproduct % 10) + 1;
        else
          sum += tproduct;
        if (mul == 1)
          mul++;
        else
          mul--;
      }
    // Uncomment the following line to help create credit card numbers
    // 1. Create a dummy number with a 0 as the last digit
    // 2. Examine the sum written out
    // 3. Replace the last digit with the difference between the sum and
    //    the next multiple of 10.//  document.writeln("<BR>Sum      = ",sum,"<BR>");
    //  alert("Sum      = " + sum);  if ((sum % 10) == 0)
        return (true);
      else
        return (false);} // END FUNCTION isCreditCard()
      

  2.   

    <form>
    <input id=tt value=3141592653587><input type=button value=check onclick=check(tt.value)>
    </form>
    <script>
    function check(str){
    if(!isCreditCard(str))alert("未通过")
    alert("通过第一层验证:"+str)
    }
    function isCreditCard(st) {
      // Encoding only works on cards with less than 19 digits
      if (st.length > 19)
        return (false);  sum = 0; mul = 1; l = st.length;
      for (i = 0; i < l; i++) {
        digit = st.substring(l-i-1,l-i);
        tproduct = parseInt(digit ,10)*mul;
        if (tproduct >= 10)
          sum += (tproduct % 10) + 1;
        else
          sum += tproduct;
        if (mul == 1)
          mul++;
        else
          mul--;
      }
    // Uncomment the following line to help create credit card numbers
    // 1. Create a dummy number with a 0 as the last digit
    // 2. Examine the sum written out
    // 3. Replace the last digit with the difference between the sum and
    //    the next multiple of 10.//  document.writeln("<BR>Sum      = ",sum,"<BR>");
    //  alert("Sum      = " + sum);  if ((sum % 10) == 0)
        return (true);
      else
        return (false);} // END FUNCTION isCreditCard()
    </script>