自动修剪适当的标题,并删除Google电子表格中单词之间的多余空格

时间:2019-10-12 14:10:05

标签: google-apps-script google-sheets scripting

在继续询问HERE和@Edvin的好评后,我有以下查询。

以下代码在我的Google电子表格中非常有用。

date_EOM %within% as.list(df2_interval)

有什么方法可以添加TRIM,CLEAN,删除此代码中的函数之类的单词之间的多余空格。

1 个答案:

答案 0 :(得分:0)

这个答案怎么样?请认为这只是几个答案之一。

在这个答案中,我使用了this thread中的脚本来实现TRIM和CLEAN。并使用此功能修改了您的脚本。

修改后的脚本:

function onEdit(e) {
  if (typeof e.value != 'object') {
    if ([4, 5].indexOf(e.range.columnStart)<0) return;
    e.range.setValue(titleCase(e.value));
  }
}

// Modified
function titleCase(str) {
  return str.toString().split(/\b/).map(function(word) {
    return word ? cleanForGAS(word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()) : '';
  }).filter(String).join(' ');
}

// This function is from https://stackoverflow.com/a/50053581
function cleanForGAS(str) {
  if (typeof str == "string") {
    var escaped = escape(str.trim());
    for (var i = 0; i <= 31; i++) {
      var s = i.toString(16);
      var re = new RegExp("%" + (s.length == 1 ? "0" + s : s).toUpperCase(), "g");
      escaped = escaped.replace(re, "");
    }
    var remove = ["%7F", "%81", "%8D", "%8F", "%90", "%9D"];
    remove.forEach(function(e) {
      var re = new RegExp(e, "g");
      escaped = escaped.replace(re, "");
    });
    return unescape(escaped).trim();
  } else {
    return str;
  }
}

如果我误解了您的问题,而这不是您想要的结果,我深表歉意。