You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Apps Script中移除文档中的缩写形式?

问题与解决方案

问题描述

我大致了解操作原理,仅需实际移除步骤的帮助。我使用kontractions库来实现,通过以下代码片段导入该库:

eval(UrlFetchApp.fetch("<SCRIPT>").getContentText())
const LIBRARIES = {<SCRIPT REFERENCE>: "<SCRIPT>", <ANOTHER SCRIPT REFERENCE>: "<ANOTHER SCRIPT>"}
Object.keys(LIBRARIES).forEach(function(library) { newFunc = eval(UrlFetchApp.fetch(LIBRARIES[library]).getContentText()); eval('var ' + library + ' = ' + newFunc); });

但该库还依赖其他导入项,我无法全部添加。请问有没有无需完全重写的解决方法?

可行解决方案

  • 打包成单文件:用Webpack、Rollup这类打包工具,把kontractions库和它的所有依赖打包成一个独立的JS文件。之后只需要把这个打包好的文件放到可访问的地址,用你现有的UrlFetchApp.fetch拉取这一个文件就行,不用再处理零散的依赖。
  • 手动合并依赖代码:如果依赖数量不多,直接查看kontractions源码里用到的依赖模块,把对应代码复制出来和原库代码合并成一个文件,这样导入时只需要处理这一个合并后的文件,避开多依赖的问题。
  • 改用轻量无依赖实现:自己写个简单的缩写替换逻辑,不用依赖外部库。比如:
    // 定义缩写映射表,可根据需求补充
    const contractionMap = {
      "don't": "do not",
      "can't": "cannot",
      "I'm": "I am",
      "you're": "you are",
      "it's": "it is"
    };
    
    function expandContractions(text) {
      // 匹配常见缩写格式,替换为完整形式
      return text.replace(/\b([a-zA-Z]+'[a-zA-Z]+)\b/g, match => {
        const lowerMatch = match.toLowerCase();
        return contractionMap[lowerMatch] || match;
      });
    }
    
    这种方式代码量小,完全独立,不用管任何外部依赖。

内容的提问来源于stack exchange,提问作者skii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 11:02:15