编写Tampermonkey脚本拆分物料编码并重组输出
Tampermonkey脚本实现物料编码解析与重组
以下是符合需求的Tampermonkey脚本,包含编码拆分、映射匹配、格式重组及填入目标输入框的完整逻辑:
// ==UserScript== // @name 物料编码自动解析重组 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 拆分物料编码并重组为指定格式填入输入框 // @author You // @match 替换为你的目标网页URL // @grant none // ==/UserScript== (function() { 'use strict'; // 定义各段编码的映射关系,根据实际需求补充更多条目 const statusMap = { 'F': 'FRESH', 'C': 'C&T', 'P': 'PDMG', 'D': 'DMG' }; const typeMap = { 'PPUTHP': 'PPC' // 在这里添加更多类型编码与名称的映射 }; const categoryMap = { '110': 'ACS' // 在这里添加更多类别编码与名称的映射 }; const attributeMap = { '0000': 'MRP', '5000': 'NON MRP' // 在这里添加更多属性编码与名称的映射 }; // 替换为实际物料编码输入框的选择器(如ID、class等) const sourceInput = document.querySelector('#material-code-input'); // 替换为实际目标空输入框的选择器 const targetInput = document.querySelector('#target-input'); if (!sourceInput || !targetInput) { console.log('未找到指定的输入框'); return; } // 处理编码的核心函数 function processCode() { const code = sourceInput.value.trim(); if (code.length !== 14) { // 首字母1位+6+3+4=14位,根据实际长度调整 targetInput.value = ''; console.log('物料编码长度不符合要求'); return; } // 拆分编码各段 const statusCode = code[0]; const typeCode = code.slice(1, 7); const categoryCode = code.slice(7, 10); const attributeCode = code.slice(10); // 获取映射后的名称,未匹配则显示"未知" const statusName = statusMap[statusCode] || '未知'; const typeName = typeMap[typeCode] || '未知'; const categoryName = categoryMap[categoryCode] || '未知'; const attributeName = attributeMap[attributeCode] || '未知'; // 重组为指定格式:类别-类型-属性-状态 const formattedStr = `${categoryName}-${typeName}-${attributeName}-${statusName}`; targetInput.value = formattedStr; } // 方式1:当物料编码输入框内容变化时自动处理 sourceInput.addEventListener('input', processCode); // 方式2:页面加载时如果输入框已有值,自动处理 // if (sourceInput.value.trim()) { // processCode(); // } // 方式3:添加按钮手动触发(可选) // const triggerBtn = document.createElement('button'); // triggerBtn.textContent = '解析编码'; // triggerBtn.style.marginLeft = '10px'; // sourceInput.parentNode.appendChild(triggerBtn); // triggerBtn.addEventListener('click', processCode); })();
关键部分说明
- 映射关系配置:
statusMap、typeMap等对象用于存储编码与对应名称的映射,你可以根据实际业务需求补充更多条目。 - 输入框选择器:需要将
sourceInput和targetInput的选择器替换为目标网页中实际的元素选择器(比如通过ID、class或标签定位)。 - 编码拆分逻辑:根据固定结构拆分字符串,若编码长度不符合14位(1+6+3+4),会清空目标输入框并在控制台提示。
- 触发方式:脚本默认监听物料编码输入框的内容变化事件,自动解析重组;也可以选择页面加载时自动处理或添加手动触发按钮,按需启用对应代码块。
内容的提问来源于stack exchange,提问作者Sachin Agrawal
相关产品推荐
相关产品推荐

