我现在有以下代码:
shp = this.getField("shp");
out = this.getField("txt")
p = shp.value.split("");
pn = "";
for (i = 0; i < p.length; i++) {
pn += p[i].charCodeAt(0);
};
现在我想循环通过pn 并检查大于56的值,
这些值我想替换为(值 - 63)%10
我该怎么做?
所以,要更清楚一点:
我想重写以下vba代码以在adobe acrobat上运行它:
Function upsp(number)
qsm = 0
For i = 1 To 15
p = Mid(number, 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
此代码计算ups跟踪号的校验和。
答案 0 :(得分:0)
试试这个:
shp = this.getField("shp");
out = this.getField("txt")
p = shp.value.split("");
pn = "";
for (i = 0; i < p.length; i++) {
// pn += p[i].charCodeAt(0);
if (p[i]>56) p[i] = (p[i] - 63)%10;
};
答案 1 :(得分:0)
为什么不用你的代码,而是用
for (i = 0; i < p.length; i++) {
if(p[i].charCodeAt(0) > 56) pn += (p[i].charCodeAt(0) -63)%10;//do you want 10 percent or modulus of 10? %10 will be the modulus /10 woul be 10 percent
else
pn += p[i].charCodeAt(0);
};
如果它不是你想要的,你应该重新解释这个问题,因为我老实说没有得到它。