Google Script提取Drive链接ID数组异常问题求助
解决谷歌表格Drive链接ID提取问题
问题出在你的正则表达式缺少全局匹配修饰符g,默认情况下match()方法只会返回第一个匹配结果,加上g后才能捕获所有符合规则的ID。
修改步骤:
- 给正则添加
g修饰符,获取所有匹配的ID数组:
const driveIds = myimage.match(/[\w_\-]{33,}/g);
- 遍历数组输出每个ID(或按需处理):
if (driveIds) { // 逐个输出ID,换行分隔 driveIds.forEach(id => { body.editAsText().appendText(id + '\n'); }); // 或者直接输出用逗号分隔的ID字符串 // body.editAsText().appendText(driveIds.join(', ')); }
原代码问题说明:
- 未加
g修饰符时,match()返回的是包含第一个匹配项的数组(仅driveIds[0]有值),自然无法获取第二个ID。 - 你原代码里直接用
myimage[0]、myimage[1]是错误的,应该用match()返回的数组变量(比如上面的driveIds)来访问元素。
内容的提问来源于stack exchange,提问作者lars dilweg
相关产品推荐
相关产品推荐

