数字个人代码验证器

时间:2016-11-01 10:00:53

标签: javascript

我有这个JavaScript函数,我必须创建一个提示,我需要输入一个数字,并根据它来运行上面的函数。

JavaScript部分是正确的,但我不知道如何创建前端接口并将其链接到该功能。

我只允许使用JavaScript和HTML。 (作业)

function validCNP( p_cnp ) {
    var i=0 , year=0 , hashResult=0 , cnp=[] , hashTable=[2,7,9,1,4,6,3,5,8,2,7,9];
    if( p_cnp.length !== 13 ) { return false; }
    for( i=0 ; i<13 ; i++ ) {
        cnp[i] = parseInt( p_cnp.charAt(i) , 10 );
        if( isNaN( cnp[i] ) ) { return false; }
        if( i < 12 ) { hashResult = hashResult + ( cnp[i] * hashTable[i] ); }
    }
    hashResult = hashResult % 11;
    if( hashResult === 10 ) { hashResult = 1; }
    year = (cnp[1]*10)+cnp[2];
    switch( cnp[0] ) {
        case 1  : case 2 : { year += 1900; } break;
        case 3  : case 4 : { year += 1800; } break;
        case 5  : case 6 : { year += 2000; } break;
        case 7  : case 8 : case 9 : { year += 2000; if( year > ( parseInt( new Date().getYear() , 10 ) - 14 ) ) { year -= 100; } } break;
        default : { return false; }
    }
    if( year < 1800 || year > 2099 ) { return false; }
    return ( cnp[12] === hashResult );
}

1 个答案:

答案 0 :(得分:0)

因为看起来你不需要真正的界面而只需要输入数字的方法,最简单的情况是使用javascript方法window.prompt()...然后将值传递给你的函数< / p>

var data = prompt('Type a number');
console.log(validCNP(data));

https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt