如何用正则提取innerHTML值到输入框并去除前导零与kg后缀
解决方案:提取并处理重量数值
我们可以通过编写通用处理函数,实现从目标元素中提取数字、去除前导零和kg后缀的需求,同时复用逻辑减少代码冗余:
修改后的JS代码
// 通用处理函数:提取数字并格式化 function processWeight(rawValue) { // 匹配字符串中的连续数字部分 const numMatch = rawValue.match(/\d+/); if (!numMatch) return ''; // 转成数字自动去除前导零,再转回字符串 return Number(numMatch[0]).toString(); } function bruto() { const rawContent = document.getElementById("serialResults").innerHTML; document.getElementById("25").value = processWeight(rawContent); }; function tara() { const rawContent = document.getElementById("serialResults").innerHTML; document.getElementById("35").value = processWeight(rawContent); };
逻辑说明
- 正则提取数字:使用
/\d+/匹配字符串中的连续数字段,比如0000300kg会匹配到0000300,自动忽略前后非数字内容。 - 去除前导零:将匹配到的数字字符串转为
Number类型,JavaScript会自动忽略前导零,再转回字符串就得到无前置零的纯数值。 - 复用逻辑:把处理逻辑封装成通用函数,避免在两个按钮事件中重复编写相同代码。
如果需要更精准匹配仅末尾带kg的内容,可改用以下正则(支持忽略kg大小写):
function processWeight(rawValue) { // 直接跳过前导零,捕获有效数字部分 const numMatch = rawValue.match(/0*(\d+)kg/i); return numMatch ? numMatch[1] : ''; }
内容的提问来源于stack exchange,提问作者omdx
相关产品推荐
相关产品推荐

