条码解析的一片js
function HIBC_CheckCode(code) { var nonCheckCode = code.substr(0, code.length - 1); var arr = nonCheckCode.split(""); var sum = 0; var arrayDic = new Array(); arrayDic["0"] = "0"; arrayDic["1"] = "1"; arrayDic["2"] = "2"; arrayDic["3"] = "3"; arrayDic["4"] = "4"; arrayDic["5"] = "5"; arrayDic["6"] = "6"; arrayDic["7"] = "7"; arrayDic["8"] = "8"; arrayDic["9"] = "9"; arrayDic["A"] = "10"; arrayDic["B"] = "11"; arrayDic["C"] = "12"; arrayDic["D"] = "13"; arrayDic["E"] = "14"; arrayDic["F"] = "15"; arrayDic["G"] = "16"; arrayDic["H"] = "17"; arrayDic["I"] = "18"; arrayDic["J"] = "19"; arrayDic["K"] = "20"; arrayDic["L"] = "21"; arrayDic["M"] = "22"; arrayDic["N"] = "23"; arrayDic["O"] = "24"; arrayDic["P"] = "25"; arrayDic["Q"] = "26"; arrayDic["R"] = "27"; arrayDic["S"] = "28"; arrayDic["T"] = "29"; arrayDic["U"] = "30"; arrayDic["V"] = "31"; arrayDic["W"] = "32"; arrayDic["X"] = "33"; arrayDic["Y"] = "34"; arrayDic["Z"] = "35"; arrayDic["-"] = "36"; arrayDic["."] = "37"; arrayDic[" "] = "38"; arrayDic["$"] = "39"; arrayDic["/"] = "40"; arrayDic["+"] = "41"; arrayDic["%"] = "42"; arr.map(function (item, i) { sum += Number(arrayDic[item]); }) var ys = sum % 43; if (Number(ys) == Number(arrayDic[code.substr(code.length - 1, 1)])) return true; else return false;
}
function OtherCode_CheckCode(code) { var arr = code.split(""); var odd = 0, even = 0, num; arr.map(function (item, i) { if (i & 1) {
even += Number(item); } else {
odd += Number(item); } }) var codeLen = code.length; if (codeLen % 2 == 0) { num = String(10 - Number(String(odd * 3 + even).slice(-1)[0])).slice(-1)[0]; } else { num = String(10 - Number(String(odd + even * 3).slice(-1)[0])).slice(-1)[0]; } return num; }
//从批次码中挑选信息 function GetInfoFromRange(Code, Range) {
if (Range != "") { var Ranges = Range.split(","); return Code.substring(parseInt(Ranges[0]) - 1, parseInt(Ranges[1]) + parseInt(Ranges[0]) - 1); } }
//时间类型字段-截取 function GetDateInfoFromRange(Code, Range) {
if (Range != "") { var Ranges = Range.split(','); var dateType = Range.split('|')[1]; return GetDateInformation(Code.substring(parseInt(Ranges[0]) - 1, parseInt(Ranges[1].split('|')[0]) + parseInt(Ranges[0]) - 1), dateType); } else { return ""; } } //时间类型字段-截取 function GetDateInfoFromRange(Code, Range) {
if (Range != ""&&Code!="") { var Ranges = Range.split(','); var dateType = Range.split('|')[1]; return GetDateInformation(Code.substring(parseInt(Ranges[0]) - 1, parseInt(Ranges[1].split('|')[0]) + parseInt(Ranges[0])), dateType); } else { return ""; } }
//根据日期格式格式化日期为要显示日期 //dateString--要格式的日期字条串 如:YYMMDD=>>150928 YYJJJ=>>15182 MMYY==> >1115 //dateType"--格式:如YYMMDD function GetDateInformation(dateString, dateType) { var myDate = new Date(); var ye = myDate.getFullYear().toString().substring(0, 2); var result = 0;
switch (dateType) { case "YYMMDD": result = ye + dateString.substring(0, 2) + "-" + dateString.substring(2, 4) + "-" + dateString.substring(4, 6); break; case "YYJJJ": var flag = 0; var year = parseInt(ye + dateString.substring(0, 2)); var Month = 0; var Days = 0; var monthIndex = 0; var day = parseInt(dateString.substring(2, 5)); if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 100)) flag = 1; else flag = 0; var days = [0, 31, 59 + flag, 90 + flag, 120 + flag, 151 + flag, 181 + flag, 212 + flag, 243 + flag, 273 + flag, 304 + flag, 334 + flag, 365 + flag]; for (var i = 0; i < days.length; i++) { if (day <= days[i]) { Month = i < 10 ? ("0" + i) : i; monthIndex = i - 1; break; } } Days = (day - days[monthIndex] < 10) ? "0" + (day - days[monthIndex]) : (day - days[monthIndex]); result = year + "-" + Month + "-" + Days; break; case "MMYY": year = parseInt(ye + dateString.substring(2, 4)); result = ye + dateString.substring(2, 4) + "-" + dateString.substring(0, 2) + "-01"; break; case "YYMM": result = ye + dateString.substring(0, 2) + "-" + dateString.substring(2, 4) + "-01"; break; default: break; } var nullResult = ""; var matchResult = result.match(/((^((1[8-9]\d{2})|([2-9]\d{3}))(-)(10|12|0?[13578])(-)(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(11|0?[469])(-)(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(0?2)(-)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)(-)(0?2)(-)(29)$)|(^([3579][26]00)(-)(0?2)(-)(29)$)|(^([1][89][0][48])(-)(0?2)(-)(29)$)|(^([2-9][0-9][0][48])(-)(0?2)(-)(29)$)|(^([1][89][2468][048])(-)(0?2)(-)(29)$)|(^([2-9][0-9][2468][048])(-)(0?2)(-)(29)$)|(^([1][89][13579][26])(-)(0?2)(-)(29)$)|(^([2-9][0-9][13579][26])(-)(0?2)(-)(29)$))/); if (matchResult==null) return nullResult; else return result;
}
条码解析的一片js的更多相关文章
- Ajax实现xml文件数据插入数据库(一)--- 构建解析xml文件的js库
Ajax实现将xml文件数据插入数据库的过程所涉及到的内容比较多,所以对于该过程的讲解本人打算根据交互的过程将其分为三个部分,第一部分为构建解析xml文件的javascript库,第二部分为ajax与 ...
- js字符串转日期,js字符串解析成日期,js日期解析, Date.parse小时是8点,Date.parse时间多了8小时
js字符串转日期,js字符串解析成日期,js日期解析, Date.parse小时是8点,Date.parse时间多了8小时 >>>>>>>>>&g ...
- 不阻塞浏览器的解析,待外部js下载完成后异步执行
网站统计中的数据收集原理及实现(js埋点实现) - lastwhisper - CSDN博客 https://blog.csdn.net/l1212xiao/article/details/80450 ...
- C#调用摄像头(AForge)实现扫描条码解析(Zxing)功能
网上找了很多代码,都比较零散,以下代码纯自己手写,经过测试.下面有链接,下载后可以直接使用. 介绍: 自动识别:点击Start按钮会调用PC摄像头,代码内置Timer,会每100毫秒识别一下当前摄像头 ...
- Vue+Java+Base64实现条码解析
前端部分(Vue + Vant) 引入Vant.使用Vant中的Uploader组件上传文件(支持手机拍照) import Vue from 'vue'; import { Uploader } fr ...
- CSV.js – 用于 CSV 解析和编码的 JS 工具库
逗号分隔值(CSV )文件用于以以纯文本的形式存储表格化数据(数字和文本). CSV 文件包含任意数量的记录,通过某种换行符分隔,每条记录由字段,其他一些字符或字符串分隔,最常用的是文字逗号或制表符. ...
- Java - 字符串和Unicode互转 - 解析小米pm.min.js
小米JS地址: http://p.www.xiaomi.com/zt/20130313/huodong/pm.min.js 上面这个JS是小米抢手机页面的代码.和抢手机有直接关联.. 虽然我3次都没抢 ...
- 利用fastjson解析json并通过js&ajax实现页面的无跳转刷新
1.json是一种优秀的数据格式,在移动开发和web开发中经常用到,本例中通过一个小案例讲解如何通过alibaba的开源框架fastjson来解析jason数据格式并通过js实现无跳转刷新 2,新建一 ...
- 全面解析JavaScript的Backbone.js框架中的Router路由
这篇文章主要介绍了Backbone.js框架中的Router路由功能,Router在Backbone中相当于一个MVC框架中的Controller控制器功能,需要的朋友可以参考下. Backbone ...
随机推荐
- Spring整合activiti-modeler5.16遇到的小问题
接上一篇整合activiti-modeler并成功创建model:Spring整合activiti-modeler5.16 之后,我尝试运用自定义的model部署流程,但是在部署的过程中又遇到了一 ...
- PHP写一段代码,确保多个进程同时写入一个文件成功
这个需求是在软件设计过程常见的加锁.学计算机的同学都应该知道,这个是在<计算机操作系统>课程上有这个知识点.主要要考虑的是进程的同步,也就是进程对资源的互斥访问.OK,用程序说话吧! &l ...
- [Android实例] Scroll原理-附ScrollView源码分析
想象一下你拿着放大镜贴很近的看一副巨大的清明上河图, 那放大镜里可以看到的内容是很有限的, 而随着放大镜的上下左右移动,就可以看到不同的内容了 android中手机屏幕就相当于这个放大镜, 而看到的内 ...
- REST总结(转)
REST总结 REST(Representational State Transfer)是代表状态传输的缩写,它代表了分布式超媒体系统的体系结构风格,它是一种针对网络应用的设计和开 ...
- 30天轻松学习javaweb_Eclipse在修改了web.xml后将自动更新到tomcat服务器中
context.xml中增加<WatchedResource>WEB-INF/web.xml</WatchedResource>,Eclipse在修改了web.xml后将自动更 ...
- 利用mysql-proxy 代理无法迁移数据库
一.什么是数据库迁移? 随着业务的增长或机器老化等原因,不可避免会碰到将数据库从一台机器迁移到另一台机器(集群)的问题.数据库迁移可分为冷迁(离线)和热迁(在线实时). 二.如何无缝迁移? 以旧库 1 ...
- 配置HylaFAX传真服务器
配置HylaFAX传真服务器转自 http://blog.chinaunix.net/uid-8551991-id-248081.html参考:http://www.hylafax.org/howto ...
- substring与substr
一.substring package Test; public class SubstringTest { public static void main(String[] args) { Stri ...
- cocos2d-x 菜单
菜单在游戏中是非常常见的控件之一.下面来分析下在cocos2dx中有那些菜单. 一共有六种菜单. CCMenu在创建时需要使用CCMenuItem来创建. CCMenu继承自CCLayer,是一个菜单 ...
- 内存数据库(sqlite)和 map数据结构 做缓存对比
背景: 今天看文档时发现说android的SQLITE在创建时,如果不指定name,则会创建in-memory的数据库.且当该db被close时,才会释放. 那这样来说,完全可以用来做内存缓存嘛. 用 ...