在Google Script If语句中运行RegEx

Running RegEx within Google Script If Statement

本文关键字:运行 RegEx 语句 If Google Script      更新时间:2023-09-26

我正在使用Google Script从匹配我的正则表达式的列中提取值,但我似乎无法让我的正则表达式变量与我的if语句一起工作。当我将变量设置为字符串时,我没有问题运行我的函数并获得响应,但它不能与正则表达式一起工作,我试图找出问题:

下面是我的脚本:
function extractBranded() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  for (var i = 0; i < data.length; i++) {
    var keywords = /ipad dns|dns system/;
    if (data[i][0] == keywords) {
      Logger.log(data[i][0]);
    } else {
    }
  }

Google Sheets Data(查询= Column and Row A1):

Queries
dns system
dns systems
ipad dns
ipad dns system
business 101
ipad dns register
dns

理论上,这应该挑选在我的工作表中的七个值中的四个。

我还尝试用new RegExp()调用构造函数,但这不起作用。任何想法吗?

使用

if (data[i][0].match(keywords)) {

if (keywords.test(data[i][0])) {

您将获得5个结果:

[15-08-31 23:27:52:850 CEST] dns system
[15-08-31 23:27:52:864 CEST] dns systems
[15-08-31 23:27:52:865 CEST] ipad dns
[15-08-31 23:27:52:866 CEST] ipad dns system
[15-08-31 23:27:52:866 CEST] ipad dns register

您忘记调用match()test()来实际应用您的正则表达式。