【发布时间】:2015-08-31 21:13:10
【问题描述】:
我正在使用 Google 脚本从与我的正则表达式匹配的列中提取值,但我似乎无法让我的正则表达式变量与我的 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 表格数据(查询 = A1 列和行):
Queries
dns system
dns systems
ipad dns
ipad dns system
business 101
ipad dns register
dns
理论上,这应该是我工作表中七个值中的四个。
我还尝试使用new RegExp() 调用构造函数,但这不起作用。有什么想法吗?
【问题讨论】:
-
您的正则表达式读取为“ipad dn(s|d)ns 系统”,您缺少括号。
-
使用
if (data[i][0].match(keywords)) {,我得到了5个结果:dns system、dns systems、ipad dns、ipad dns system、ipad dns register——是你要找的吗?你忘了打电话给.match()。或test():if (keywords.test(data[i][0])) {
标签: javascript regex google-sheets