Javascript,验证,用于循环

Javascript,验证,用于循环,javascript,validation,loops,Javascript,Validation,Loops,我正在用Javascript编写一个信用卡号验证程序。我想对照LUHN变量进行检查,我想自己编写步骤,并尝试借助for循环来完成这项工作,以便练习它们。 然而,我被困住了,我需要一些友好的建议从现在开始做什么。 对于for循环的整个语法,我也有点困扰,任何关于如何改进它们的提示都是受欢迎的 项目在这里: 以下是我遇到问题的代码: else if (filter.test(cardnumber.value)) { // 1. Begin with second to last number

我正在用Javascript编写一个信用卡号验证程序。我想对照LUHN变量进行检查,我想自己编写步骤,并尝试借助for循环来完成这项工作,以便练习它们。 然而,我被困住了,我需要一些友好的建议从现在开始做什么。 对于for循环的整个语法,我也有点困扰,任何关于如何改进它们的提示都是受欢迎的

项目在这里:

以下是我遇到问题的代码:

else if (filter.test(cardnumber.value))
{

  // 1. Begin with second to last number iterate, every second number with 2 until start.
    for(i = 0; i < cardnumber.length;i += 1){
    newnumbers = (i * 2);

  // 2. The result of the previous string to be added i+i+i.
    for (i = 0; i < newnumbers.length; i += 1){   
    sum1 = (i + i);


  // 3. Then add the remaining numbers together but skip the last which is a control number.
    for (i = 0; i < cardnumber.length; i += 1){
    sum2 = (i + i);

  // 4. Add sum1 and sum2 together

    var checksum = (sum1 + sum2);

    alert('the sum of x and y is: ' + checksum);
    // 5. Mod10 out of the checksum + cardnumber control number to get validity.
    if ((checksum + cardnumber[-0]) % 10 === 0){
            alert('LUHN checks out!');
    }
    else {
    alert('not yet');
    }
   }  
  } 
 }
else if(filter.test(cardname.value))
{
//1.从第二个到最后一个数字开始迭代,每隔一秒以2开始,直到开始。
对于(i=0;i
我不确定如何提出正确的问题,但我猜我的问题是可变范围、for循环和让for循环执行基于索引的查询。我知道这段代码既难看又长,这是我第二次尝试javascript,所以请不要太在意

运行此代码时,校验和未定义-有人知道为什么吗?可能与字符串和整数有关吗?:S

我们非常感谢您的回复。 非常感谢。
Tomas

在所有嵌套的for循环中使用相同的变量“i”可以吗?我觉得这不太好!

很可能是真的!我刚刚尝试了一些循环重构,这些循环最初没有嵌套,并且使用了相同的变量“i”-但是这样做可以吗?如果循环没有嵌套,那么重用变量也可以,但是在嵌套循环中,您不应该这样做,除非您正在引用相同的内容(您想在更高级别的循环中跳过或重复某些步骤)如果您可以使用jQuery,那么有一个优秀的信用卡验证插件,它可以检查Luhn校验和并确定卡类型:啊,我不能,这是我收到的一个学校项目的作业,应该是JavaScript。没有库等。但是谢谢!