首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > PHP > 集装箱箱号校验规则 javascript
【标  题】:集装箱箱号校验规则 javascript
【关键字】:javascript
【来  源】:http://blog.csdn.net/ttgzs/archive/2007/04/16/1566011.aspx

集装箱箱号校验规则 javascript

最近作的一个项目中涉及到了集装箱箱号校验的问题,在网上找了好多资料都是关于介绍它的命名规则,

而对于他的校验方法则介绍的方法。 经过几天的努力,借助于网络的优势,将校验写成了javascript

 

// 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 
    
{
        exp
=/^[A-Za-z]{4}d{7}$/g;
        
if (!exp.test(test)) 
        
{
        alert(
"集装箱编码格式不正确,前四位应为字母,后七位为数字,请重新输入!");
        
return false;
        
//location.reload();
        }


        left
=test.substr(0,4);
        right
=test.substr(4,7);
        testnum
=test.substr(10,1);
    
        char1
=test.substr(0,1);
        char2
=test.substr(1,1);
        char3
=test.substr(2,1);
        char4
=test.substr(3,1);
        
//箱号字头
        num[0]=changechar(char1);
        num[
1]=changechar(char2);
        num[
2]=changechar(char3);
        num[
3]=changechar(char4);

        
//序列号
        num[4]=test.substr(4,1);
        num[
5]=test.substr(5,1);
        num[
6]=test.substr(6,1);
        num[
7]=test.substr(7,1);
        num[
8]=test.substr(8,1);
        num[
9]=test.substr(9,1);
        
//校验数字
        num[10]=test.substr(10,1);
/*
for (i=0;i<11;i++){
document.write(num[i]);
document.write("<br>");
}
*/

    sum
=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;
result
=sum%11;
//document.write("集装箱编码为:" + test + "<br><br>")
    if (result!= num[10])
        
{
            
//document.write("<font color=blue>校验码错误!");
            //document.write("正确的校验码为:</font><font color=red>" + result + "</font>");
            alert("校验码错误!正确的校验码为:" + result);
            
return false;
        }

        
else
            
{
                document.write(
"<font color=red>正确</font><br>");
            
return true;
            }

            
    }
    
}

前台调用方法如下

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript" type="text/jscript" src="cntr.js">
    
</script>

</head>

<body>
<form id="form1" name="form1" method="post" action="">
  
<label>
  
<input type="text" name="textfield" id="textfield" onkeypress="" />
  
<input type="submit" name="Submit" value="提交" onclick="return GetCntr(document.form1.textfield.value)" />
  
</label>

</form>
</body>
</html>

 

如果大家有什么建议和想法,请给我留言

统计在线人数Web:【上一篇】
javascript哪位高手帮我解决这个程序的光标定位问题???:【下一篇】
【相关文章】
  • javascript prototype介绍的文章
  • JAVASCRIPT捕捉用户按键,实现功能键
  • 如何使用javascript在html中获取url参数——很好用
  • Javascript中判断对象的基本类型
  • javascript原型模式实现OOP的再研究
  • Javascript RIA框架开发要点
  • JavaScript Integration 3分钟入门教材
  • 使用JavaScript事件综合查询
  • 浅析JavaScript实用的一些技巧
  • javascript设置DIV位置
  • 【随机文章】
  • 详细解说MySQL 的字符集[ZT]
  • 策划入门(三)创意的价值和如何写故事
  • mysql的日志
  • majordomo邮件列表快速安装指南
  • 枕着你的名字入眠
  • 中文语音识别技术在c#中的应用(一)
  • 月经不调原因月经不调的原因月经不调的治疗女性保健重在养血
  • 以在局域网中通过Web方式轻松实现资源共享
  • linux下arpspoof简介
  • 我自己写的第一个游戏--贪吃蛇
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.