从电子表格中收集值,在字符串中查找这些值并替换

Collect values from a spreadsheet, look for those values in a string and replace

我的电子表格中的值是这些:

/2021/
/20212022/
/2022/
/20222023/
/2023/

为了尝试在字符串中找到这些值然后替换为 /@@@@/ 我尝试创建一个映射:

var sheet = SpreadsheetApp.getActive().getSheetByName('One')
var liga = 'https://int.testestest.com/national/united-states/mls/2022/regular-season/r66725/'
var years = sheet.getRange('One!A10:A14').getValues().flat();
var mapObj = {one: years[0],two: years[1],three: years[2],four: years[3],five: years[4]};

var liga_substitute = liga.replace(/\b(?:one|two|three|four|five)\b/gi, matched => mapObj[matched]);

var liga_final_subs = liga_substitute.replace('one','/@@@@/').replace('two','/@@@@/').replace('three','/@@@@/').replace('four','/@@@@/').replace('five','/@@@@/')

但是替换后的结果还是一样:

https://int.testestest.com/national/united-states/mls/2022/regular-season/r66725/

我的最终预期结果是:

https://int.testestest.com/national/united-states/mls/@@@@/regular-season/r66725/

并且在 var liga_final_subs = 中存在在错误的位置找到这些文本部分并替换不应该替换的部分的风险。

我应该如何正确执行此操作?

不确定您想要获得什么。这是完成这项工作的代码(我希望如此):

var liga = 'https://int.testestest.com/national/united-states/mls/2022/regular-season/r66725/'

var years = [
    '/2021/',
    '/20212022/',
    '/2022/',
    '/20222023/',
    '/2023/',
];

var liga_final_subs = liga;

years.forEach(x => liga_final_subs = liga_final_subs.replace(x, '/@@@@/'));

console.log(liga_final_subs);