在Google Doc Apps脚本中使用RegEx替换文本

时间:2019-01-23 16:23:38

标签: regex google-docs

Google文档中有一行带有时间和日期戳。我已经使用正则表达式编写了以下代码,以当前时间/日期替换该行,但是我不确定为什么这行不通。

class MyGuard implements CanActivateChild {
    canActivateChild(route, state): boolean | Observable<boolean> {
      if (!route.data || route.data.active) {
        // TODO: return your modal observable here and map it to boolean, e.g. via:
        return modalService.alert('Data error').map(() => false);
      }
      return true;
    }
}

如果我将document.replaceText行中的“ regExp”替换为例如“ 2019年1月22日下午3:43”,则代码会正确地将其替换为更新的日期/时间,但无法替换匹配的正则表达式。有任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:2)

您应该在字符串文字的帮助下传递正则表达式:

var regExp = "[0-9]{1,2}:[0-9]{2} [A-Z]{2} [A-Za-z]* [0-9]{1,2}, [0-9]{4}";

replaceText文档对此进行了解释:

  

搜索模式以字符串而不是JavaScript正则表达式对象的形式传递。因此,您需要在模式中转义任何反斜杠。

     

此方法使用Google的RE2正则表达式库,该库限制了supported syntax