javascript - 我需要提取字符串中数字的前 6 位和后 4 位数字,并使用正则表达式删除前导零

标签 javascript regex

<分区>

我需要删除前导零并使用正则表达式提取字符串中数字的前 6 位和后 4 位数字。

我目前有一段代码可以执行我想要的操作,但我想将其更改为正则表达式。

//代码

let product1 = {
 number: '00005598001400248980',
 type: 'TC'
 },
 product2 = {
  number: '00000377820202008104',
  type: 'TA'
 };
console.log('Product1: '+merge(product1.number, (product1.type === 'TA') ? {
 minEnd: 5,
 maxInit: 11
} : {
 minEnd: 6,
 maxInit: 12
}));
console.log('Product2: '+merge(product2.number, (product2.type === 'TA') ? {
 minEnd: 5,
 maxInit: 11
} : {
 minEnd: 6,
 maxInit: 12
}));

function merge(number, range) {
 let value = clean(number, 0, range.minEnd) + clean(number, range.maxInit,                 number.length);
 return value;
}

function clean(value, init, end) {
 return value.replace(/^0+/, '').substring(init, end);
}

产品 1:5598008980

产品 2:377828104

最佳答案

你可以使用这个正则表达式:/^0*(\d{6})\d*?(\d{4})$/

解释:

  • ^0* 从字符串的开头匹配尽可能多的前导零 - (\d{6}) 捕获以下 6 位数字
  • \d*? 匹配中间尽可能少的数字
  • (\d{4})$ 捕获字符串末尾的最后四位

试试regex101

例子:

function extractNumber(numberStr) {
  let match = numberStr.match(/^0*(\d{6})\d*?(\d{4})$/);
  return `${match[1]}${match[2]}`;
}

console.log(extractNumber('00005598001400248980'));
console.log(extractNumber('00000377820202008104'));

编辑:
如果您需要不同数量的数字,您可以即时生成正则表达式,例如:

function extractNumber(numberStr, firstN = 6, lastN = 4) {
  let regex = new RegExp(`^0*(\\d{${firstN}})\\d*?(\\d{${lastN}})$`);
  let match = numberStr.match(regex);
  return `${match[1]}${match[2]}`;
}

console.log(extractNumber('00005598001400248980'));
console.log(extractNumber('00000377820202008104', 5));

关于javascript - 我需要提取字符串中数字的前 6 位和后 4 位数字,并使用正则表达式删除前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57629282/

相关文章:

javascript - Swiper - 方法不起作用 - mySwiper.slideTo 不是函数

javascript - 如何通过javascript向表单添加值?

python - 正则表达式。 Python。保留一组并替换字符串中的其他组

java - 使用 RegEx 获取构造函数的索引

javascript - 使用 javascript 删除 iframe

javascript - 无法在 JavaScript 中查看对象的内容

javascript - Javascript 迭代前等待用户输入的逻辑

regex - Perl 正则表达式否定回顾

sql - 像运算符正则表达式在 Postgresql 中无法按预期工作

javascript - 如何让javascript "breath"