我对javascript一无所知。
假设字符串“3005600008000”,我需要找到一种方法将奇数位置的所有数字乘以 2,偶数位置的数字乘以 1。
我写的这个伪代码输出(我认为)TRUE 为奇数(即“0”),
var camid;
var LN= camid.length;
var mychar = camid.charAt(LN%2);
var arr = new Array(camid);
for(var i=0; i<arr.length; i++) {
var value = arr[i]%2;
Alert(i =" "+value);
}
我不确定这是对的:我不相信它会在奇数(甚至后来)位置对字符串进行分块/拆分。
我该怎么做?你能提供一些提示吗?
/=================================================/
我的目标是在网页中实现智能卡 ID 号的验证例程。
我试图实现的逻辑如下:
· 1) 从左边开始,将奇数位的所有数字乘以 2,偶数位的数字乘以 1。
· 2) 如果一位数乘以 2 的结果是两位数(例如“7 x 2 = 14”),则将结果的位数相加以产生一个新的一位数结果(“ 1+4=5")。
· 3) 将所有个位数的结果加在一起。
· 4) 校验位是您必须添加到此结果中的数量,才能达到下一个最高的十倍数。例如,如果第 3 步中的和是 22,要达到 10 的下一个最大倍数(即 30),您必须将 8 加到 22。因此校验位是 8。
这就是整个想法。Google 搜索智能卡 ID 验证没有返回任何结果,我开始认为在 Javascript 中执行此操作有点矫枉过正......
欢迎任何输入。