gpt4 book ai didi

javascript - 重叠的命名捕获组

转载 作者:行者123 更新时间:2023-11-29 16:31:33 24 4
gpt4 key购买 nike

我正在使用命名的捕获组来验证和提取产品编号中的数据。产品编号的格式如下所示:

1102961D048.075

Chars 1-2 gender_code 11
Chars 1-6 style 110296
Chars 7-8 width_code 1D
Chars 9-11 color_code 048
Char 12 delimiter ignored
Chars 13-15 size_code 075

我当前的代码如下所示:

const validateMpn = (mpn) => {
const regex = /(?<style>\d{6})(?<width>\d{1}[ABDE])(?<color_code>\d{3})\.(?<size_code>\d{3})/gi
const match = regex.exec(mpn)

if (!match) {
return null
}

return match.groups
}

const str1 = '1102961D048.075'
const str2 = '1200322A001.085'
const match1 = validateMpn(str1)
const match2 = validateMpn(str2)

console.log(match1)
console.log(match2)

由于 gender_codestyle 重叠,我不确定如何同时获得它们。因此我有以下问题:

  1. 只用一个正则表达式就可以吗?
  2. 如果是,我该如何完成?

最佳答案

当然,只需将 gender 放在 style 组中:

const validateMpn = (mpn) => {
const regex = /(?<style>(?<gender>\d{2})\d{4})(?<width>\d{1}[ABDE])(?<color_code>\d{3})\.(?<size_code>\d{3})/gi
const match = regex.exec(mpn)

if (!match) {
return null
}

return match.groups
}

const str1 = '1102961D048.075'
const str2 = '1200322A001.085'
const match1 = validateMpn(str1)
const match2 = validateMpn(str2)

console.log(match1)
console.log(match2)

关于javascript - 重叠的命名捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55880435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com