这是来自Excel宏(VB)的代码,我该如何重写它,使其在Adobe Acrobat上工作?

例如nummer是“ 161628686041430”

Function upsp(nummer)
' Übergeben wird KdNr+Serviceart+Paketnummer (ohne 1Z)
'
qsm = 0
For i = 1 To 15
p = Mid(nummer, i, 1)
If Asc(p) > 57 Then p = (Asc(p) - 63) Mod 10
qsm = qsm + (p * (2 - i Mod 2))
Next
upsp = 10 - (qsm Mod 10)
If upsp = 10 Then upsp = 0
End Function


该函数的结果应为“ 2”。

感谢帮助。

最佳答案

我认为这就是您要寻找的东西,我试图尽可能与Excel代码保持紧密联系,希望它会更容易理解。如果您有任何疑问,请告诉我...



alert(upsp('161628686041430'));

function upsp(nummer) {
  var qsm;
  var p;
  var returnValue;

  qsm = 0;
  for (var i = 0; i < nummer.length; i++) {
    p = nummer.substr(i, 1);
    if (p.charCodeAt(0) > 57) {
      p = (p.charCodeAt(0) - 63) % 10;
    }
    qsm = qsm + (p * (2 - ((i + 1) % 2)));
  }

  returnValue = 10 - (qsm % 10);
  if (returnValue === 10) {
    returnValue = 0;
  }

  return returnValue;
}

08-19 17:13