搜索/查找if语句的文本

5th*_*4x4 1 google-apps-script

我想要做的很简单.不幸的是,我似乎无法让它在天然气中工作.我现在将自己难堪并发布我的最新(许多!)尝试:

      var ss = SpreadsheetApp.getActiveSpreadsheet(); // 
      var findVal = ss.getRange("A1").getValue()
      if (findVal.findText("8762", "#N/A"));
      { 
        // do something
      }
      else {
        // do something else
      }
Run Code Online (Sandbox Code Playgroud)

我只是想在特定的单元格中搜索大段文本中的数字8762,或字符串#N/A,它将是单元格中唯一的文本.(仅供参考:#N/A不是公式的结果.它是实际文本).

显然,我正在尝试使用"find"的结果作为条件语句的驱动程序.

我不是VBA世界中的蠢货,但是电子表格设置中的javascript有时会让我觉得非常愚蠢.比如现在.

顺便说一句,我确实做了大量的搜索.不幸的是,我发现的所有内容都是大型复杂运动的一部分,这些运动让我感到困惑.我只需要一个基本的真/假解决方案,仅此而已.

是的,我可以轻松地完成一半......

    var ss = SpreadsheetApp.getActiveSpreadsheet(); // 
    var findVal = ss.getRange("A1").getValue()

     if (findVal == "#N/A") { 

   // do something

  }

  else {

   // do something else

}
Run Code Online (Sandbox Code Playgroud)

(只是为了证明我不是在寻找讲义......只是伸出援助之手)

Hen*_*reu 6

不错的尝试.很高兴看到你在尝试什么.我认为你正在寻找的是String match函数.这不是特定于Apps脚本,因此您不会在其文档中找到它,而是在通用JavaScript文档上找到它,例如在MDN上.

if( findVal.match('8762') || findVal == '#N/A' ) {
  //do something
} else {
  //do something else
}
Run Code Online (Sandbox Code Playgroud)

请注意,即使我们将字符串作为match函数的参数传递,它也会转换为正则表达式.所以,你可以快速学习它.它可能看起来太复杂但是非常有用,而且一旦掌握它就相当简单.

另一种做法如上:

if( findVal.match(/8762|^#N\/A$/) ) {
Run Code Online (Sandbox Code Playgroud)

更好的是,我们可以保证您的号码"单独"而不是更大数字的一部分,如187621.

if( findVal.match(/\b8762\b|^#N\/A$/) ) {
Run Code Online (Sandbox Code Playgroud)