易表在线答疑技术与交流用户社区 → [求助]向各位版主求教,一段js代码校验集装箱箱号是否正确的,想用易表的函数重构。


  共有11907人关注过本帖树形打印复制链接

主题:[求助]向各位版主求教,一段js代码校验集装箱箱号是否正确的,想用易表的函数重构。

帅哥哟,离线,有人找我吗?
jynet
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:39 积分:0 威望:0 精华:0 注册:2007/9/8 4:35:00
[求助]向各位版主求教,一段js代码校验集装箱箱号是否正确的,想用易表的函数重构。  发帖心情 Post By:2007/9/21 21:25:00 [只看该作者]

各位版主大家好,我在做一套系统的时候需要实现一个功能,就是校验集装箱箱号是否正确,在网上看了相关算法并找到了一段js代码,想用易表的函数重构,但是易表好像没有数组和子函数功能,苦思良久仍无进展,特来向各位版主求救,先行拜谢。
[code]// JavaScript Document
function changechar(str)
{
 
   if ((str=="a")||(str=="A"))
   return 10;
   else if ((str=="b")||(str=="B"))
   return 12;
       else if ((str=="c")||(str=="C"))
   return 13;
       else if ((str=="d")||(str=="D"))
   return 14;
       else if ((str=="e")||(str=="E"))
   return 15;
       else if ((str=="f")||(str=="F"))
   return 16;
       else if ((str=="g")||(str=="G"))
   return 17;
       else if ((str=="h")||(str=="H"))
   return 18;
       else if ((str=="i")||(str=="I"))
   return 19;
       else if ((str=="j")||(str=="J"))
   return 20;
       else if ((str=="k")||(str=="K"))
   return 21;
       else if ((str=="l")||(str=="L"))
   return 23;
       else if ((str=="m")||(str=="M"))
   return 24;
       else if ((str=="n")||(str=="N"))
   return 25;
       else if ((str=="o")||(str=="O"))
   return 26;
       else if ((str=="p")||(str=="P"))
   return 27;
       else if ((str=="q")||(str=="Q"))
   return 28;
       else if ((str=="r")||(str=="R"))
   return 29;
       else if ((str=="s")||(str=="S"))
   return 30;
       else if ((str=="t")||(str=="T"))
   return 31;
       else if ((str=="u")||(str=="U"))
   return 32;
       else if ((str=="v")||(str=="V"))
   return 34;
       else if ((str=="w")||(str=="W"))
   return 35;
       else if ((str=="x")||(str=="X"))
   return 36;
       else if ((str=="y")||(str=="Y"))
   return 37;
       else if ((str=="z")||(str=="Z"))
   return 38;
       else
   return -1000;
//if ((str=="a")||(str=="A"))
//return 10;
//else if (str=="b")
//return 1;
//else
//return 7;
}
function GetCntr(strcntr)
{
   var num = new Array(10)
   for (i=0;i<11;i++)
   {
       num[i]=0;
   }
   test=strcntr;//prompt("请输入需校验的集装箱编码","◎◎◎◎×××××××")
   len=test.length;
   if (len != 11)
   {
       alert("请重新输入11位的集装箱编码!");
       return false;
   //location.reload();
   }
   else

 回到顶部
帅哥哟,离线,有人找我吗?
Czy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/9/21 21:37:00 [只看该作者]

呵呵,易表论坛的高手对这类代码估计不会有太大的兴趣。
何不做个示例文件,说明你的详细要求?

 回到顶部
帅哥哟,离线,有人找我吗?
jynet
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:39 积分:0 威望:0 精华:0 注册:2007/9/8 4:35:00
  发帖心情 Post By:2007/9/21 21:44:00 [只看该作者]

[这个贴子最后由jynet在 2007/09/21 10:04pm 第 1 次编辑]

感谢C版的热情回复,其实就是对字段“集装箱编号”进行校验,理论上用行验证公式可以做到,但是集装箱的验证规则很麻烦,搞了好几天,我头都大了。具体验证规则是这样:集装箱号由4位公司代码和7位数字组成,其中第七位数字就是校验码。首先将公司代码转换为数字,去掉11及其倍数,连加除以11,其余数为校验位。 A=10 B=12 C=13 D=14 E=15 F=16 G=17 H=18 I=19 J=20 K=21 L=23 M=24
N=25 O=26 P=27 Q=28 R=29 S=30 T=31 U=32 V=34 W=35 X=36 Y=37 Z=38

 回到顶部
帅哥哟,离线,有人找我吗?
Czy
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/9/21 21:48:00 [只看该作者]

只要能说得清楚规则,我想有办法实现的,再则你的规则看起来似乎并不是太复杂。

 回到顶部
帅哥哟,离线,有人找我吗?
jynet
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:39 积分:0 威望:0 精华:0 注册:2007/9/8 4:35:00
  发帖心情 Post By:2007/9/21 22:06:00 [只看该作者]

需要验证的东西有是否共为11位、前四位是否为字母、后七位是否为数字、然后用上面js中的这个算法:“num[0]+num[1]*2+num[2]*4+num[3]*8+num[4]*16+num[5]*32+num[6]*64+num[7]*128+num[8]*256+num[9]*512”求和并除以11;其中前4位还需要转换为相应的字母所对应的值,最后用这个值同最后一位也就是第11位进行校验。求czy版主帮帮我啊。

 回到顶部
帅哥哟,离线,有人找我吗?
jynet
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:39 积分:0 威望:0 精华:0 注册:2007/9/8 4:35:00
  发帖心情 Post By:2007/9/21 22:08:00 [只看该作者]

3位版主都来了,真是受宠若惊啊,万分感谢各位的关怀和关注,也恳请各位帮我想想办法,哪怕是思路点拨也万分感谢。

 回到顶部
帅哥哟,离线,有人找我吗?
Czy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/9/21 22:24:00 [只看该作者]

看得有些糊涂,你发个文件吧。

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:4639 积分:133 威望:0 精华:0 注册:2006/9/23 19:23:00
  发帖心情 Post By:2007/9/21 22:45:00 [只看该作者]

egd文件下载


       献丑了!


 回到顶部
帅哥哟,离线,有人找我吗?
Czy
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/9/21 22:48:00 [只看该作者]

程版是不是发错文件了?

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:4639 积分:133 威望:0 精华:0 注册:2006/9/23 19:23:00
  发帖心情 Post By:2007/9/21 22:52:00 [只看该作者]

没有,验证公式在验证结果列刷新公式中!可以放到航验证公式中,但是是提示公式,所以改个位置让楼主先看看!

 回到顶部
总数 29 1 2 3 下一页