Google Apps Script的if语句如何使用类LIKE通配符匹配单元格字符串
Google Apps Script 模糊匹配单元格字符串解决方案
你需要的类似LIKE '%extra%'的通配符匹配在Google Apps Script中有非常简便的实现方式,以下是两种可直接落地的方案:
方案1:使用String.includes()(推荐,适合固定子串匹配)
特性
- 语法简单,可读性高
- 性能优于正则表达式,仅用于判断字符串是否包含指定子串
- 默认大小写敏感,可通过转大小写实现忽略大小写匹配
完整示例(结合单元格着色需求)
function colorCellsWithExtra() { // 获取当前激活的表格 const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 按需修改要检索的单元格范围,这里示例为检索A列所有有内容的单元格 const dataRange = activeSheet.getDataRange(); const cellValues = dataRange.getValues(); // 遍历所有单元格 for (let row = 0; row < cellValues.length; row++) { // 这里示例检索第一列(A列)的内容,需要检索其他列修改索引即可 const currentValue = cellValues[row][0] ? cellValues[row][0].toString() : ""; // 核心匹配逻辑:只要包含extra就命中,完全对应你需要的通配符效果 if (currentValue.includes("extra")) { // 命中后设置单元格背景为浅黄色,可自行修改颜色值 activeSheet.getRange(row + 1, 1).setBackground("#FFF2CC"); } } }
忽略大小写的写法
如果需要匹配Extra、EXTRA等大小写变体,修改判断语句为:if (currentValue.toLowerCase().includes("extra"))
方案2:使用正则表达式(适合复杂通配符规则扩展)
如果后续需要扩展更复杂的匹配规则,可以使用正则的test()方法:
基础匹配示例
// 效果和includes完全一致 if (/extra/.test(currentValue)) { activeSheet.getRange(row + 1, 1).setBackground("#FFF2CC"); }
常见扩展规则参考
- 忽略大小写匹配:
/extra/i.test(currentValue) - 匹配开头为extra(对应
LIKE 'extra%'):/^extra/.test(currentValue) - 匹配结尾为extra(对应
LIKE '%extra'):/extra$/.test(currentValue)
注:Google Apps Script基于JavaScript语法,和Java是完全不同的编程语言,后续查询相关资料注意区分关键词即可避免踩坑
内容的提问来源于stack exchange,提问作者Brodieman
相关产品推荐
相关产品推荐

