# barcode.parser.js **Repository Path**: hexpang/barcode-parser-js ## Basic Information - **Project Name**: barcode.parser.js - **Description**: 条形码解析,可自定解析规则 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 22 - **Forks**: 7 - **Created**: 2017-04-27 - **Last Updated**: 2023-12-07 ## Categories & Tags **Categories**: barcode **Tags**: None ## README ## 条码解析器配置说明 ### 基本参数 > 以下几种匹配模式,如果都写,则必须满足所有匹配条件 | 属性 | 必填 | 说明 | 数据值 | | ---- | ---- | ---- | ---- | | name | 是 | 条码名称,可用于区分条码类型 | 字符串 | | size | 否 | 长度匹配 | 数字 | | startWith | 否 | 起始字符串匹配 | 字符串 | | endWith | 否 | 结尾字符串匹配 | 字符串 | | regExp | 否 | 正则表达式匹配 | 正则表达式 | | elements | 是 | 解析元素集合 | 数组 | ### Element参数 | 属性 | 必填 | 说明 | 数据值 | | ---- | ---- | ---- | ---- | | name | 是 | 解析后的名称 | 字符串 | | range | 是 | 取值范围[起始位置,长度] | 整形数组 | | unit | 否 | 单位信息 | 数组或字符串 | > unit 如果是字符串,则会在数据结尾追加单位名称,如果位数组,如:**["千克",1000]**,则先除以1000,再追加单位名称 ### 栗子 ```js var parserConfig = [ { name:"条码1", regEx:/01\d{8}\d{6}3102\d{6}13\d{6}21\d{12}/g,//用正则匹配编码格式 elements:[ { name:"国家", //产品编码 range:[2,8] //第2位开始,长度为8 },{ name:"产品", range:[10,6] },{ name:"重量", range:[20,6], unit:[ "千克", 100 ] },{ name:"日期", range:[28,6] },{ name:"批次", range:[36,12] } ] } ]; parser.setConfig(parserConfig); console.log(parser.parse("010000000004553731020012101317020121006702013227")); ``` ### 输出结果 ```json { "name":"条码1", "国家":"00000000", "产品":"045537", "重量":"12.1千克", "日期":"170201", "批次":"006702013227" } ```