如何从字符串中获取子字符串并将另一个字符串附加到字符串并将其转换为数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从字符串中获取子字符串并将另一个字符串附加到字符串并将其转换为数组相关的知识,希望对你有一定的参考价值。

我在数组中有一些字符串,其形式为Exit Survey [hr.exitinterview], Certificate [hr.certificate], Recommendation Letter [hr.recommendation]我需要从现有字符串中仅提取hr.exitinterview, hr.certificate, hr.recommendation,并将另一个字符串https://somelink/hr.exitinterview, https://somelink/hr.certificate, https://somelink/hr.recommendation添加到每个子字符串,并将它们作为数组返回到另一个函数。我试过尝试使用substring并将新字符串添加到数组中,但它只是显示,,,,,。我可以知道为什么或代码有什么问题,我还在学习JS,请忽略它是否是一个愚蠢的问题。

var sheet = SpreadsheetApp.getActive().getSheetByName("Form Responses 2");
var data = sheet.getDataRange().getValues();
var currentTime = new Date();
Logger.log('currentTime:'+ currentTime);
for (var i = 1; i < data.length; i++) {
    var checkbox = data[i][7];
    var links = extract(checkbox);
    Logger.log('New links: ' + links);
  }
}

function extract(data) {
  var lengthOfData = [ data.length];
  if (lengthOfData > 0) {
      var extractedLinks = extractLinks(data);
  }
  if (extractedLinks.length > 0) {
    return extractedLinks;
  }
  else
  {
    return -1;
  }
  return -1;
}

function extractLinks(link) {
  var extractedLinks = [];
  for (var i = 0; i < link.length; i++) {
    link[i] = JSON.stringify(link[i]);
    extractedLinks.push(link[i].substring(link[i].lastIndexOf("["),link[i].lastIndexOf("]")));
    extractedLinks.map(function(a) { return "https://somelink/" + a; }).join("");
  }
  return (extractedLinks);
}
答案

使用正则表达式提取方括号之间的值,然后mapjoin它们:

const inputs = [
'Exit Survey [hr.exitinterview], Certificate [hr.certificate], Recommendation Letter [hr.recommendation]',
'Exit Survey [aaa], Certificate [bbb], Recommendation Letter [ccc]',
'Exit Survey [qqqqq], Certificate [qwert], Recommendation Letter [12345]',
];
const outputs = inputs.map((input) => {
  const strings = input.match(/[^\[\]]+(?=\])/g);
  const newFullStr = strings
    .map(str => 'https://somelink/' + str)
    .join(', ');
  return newFullStr;
});
console.log(outputs);

以上是关于如何从字符串中获取子字符串并将另一个字符串附加到字符串并将其转换为数组的主要内容,如果未能解决你的问题,请参考以下文章

如何从一个表列中获取值,将它们与字符串连接并将它们插入另一个表中?

Flutter 在另一个页面上获取用户 ID 并将其转换为字符串(“类型'Future<dynamic>'不是类型'String'的子类型”)

如何从字符串中提取整个字符串范围的子字符串并将它们放在一个数组中?

如何在Angular中将变量从组件检索到另一个? (不在 Html 页面中,而是在组件中)

我如何从用户那里接收字符串并将其分配到没有任何中间变量的指针数组中?

将域重定向到另一个域并将重定向的域附加为查询字符串