web-dev-qa-db-ja.com

文字列を操作するGoogleスプレッドシートスクリプト

Google Scriptで「文字列」タイプを操作する方法について質問がありますか?

さまざまな形式のサイトを含む列があります。 http://testsite.com/、http://www.sitetest.net/、dot.anothersite.com、http://anysite.net/index.htmlなど。

したがって、これらのレコードをsitename.domainの1つのテンプレートに自動的にフォーマットします(たとえば、http://testsite.com/ = testsite.com || http://www.sitetest.net/ = sitetest.net)

このスクリプトでこの情報を取得します。

var sheet = SpreadsheetApp.getActiveSheet();
  var sheetName = sheet.getName();
  var restrictSheet = "Summary";
  if (sheetName != restrictSheet){ // I don't need to modify first sheet from my spreadsheet
    var sheetRange = sheet.getActiveRange();
    var sData = sheet.getRange("A3:A"); // column with sites
    var TextArray = sData.getValues();
  }else Browser.msgBox("wrong sheet");
}

また、Googleスクリプトで文字列を操作する方法がわかりません。たとえば、C++では、String.Find()やString.Mid()などの文字列関数を使用できます。しかし、Google Scriptで同等の機能を見ることができません

12
barnak

まあ...私は自分の質問に答えを見つけました:D

Google ScriptはJavaScriptのStringクラスを使用するため、JSの関数とメソッドはGoogle Scriptsでも機能します。

http://www.w3schools.com/jsref/jsref_obj_string.asp

それは誰かを助けるかもしれません。

35
barnak

少し遅れる可能性があります。

しかし、多くの一般的な文字列オブジェクトメソッドがGoogle App Scriptで機能しないことを知っておくとよいでしょう。たとえば。endsWith。includesなど.

このstackoverflowを確認してください question

確認するためのいくつかのテストがあります

function stringEndsWithTest(){
  var a = "[email protected]";
  SpreadsheetApp.getUi().alert('endsWith method on a string in google app script '+ a.endsWith('.com')); 
}

function stringIncludesTest(){
  var a = "[email protected]";
  SpreadsheetApp.getUi().alert('includes method on a string in google app script '+ a.includes('.com')); 
}

この回答を書いているときにこのエラーが発生していました

TypeError:オブジェクトabc @ exampleに関数インクルードが見つかりません。 (19行目、ファイル「main」)

上記のメソッドの代替として私を助けたのは 'indexOf'メソッドでした

function stringIndexOfTest(){
  var a = "[email protected]";
  SpreadsheetApp.getUi().alert('indexOf method on a string in google app script '+ a.indexOf('.com')); 
}

誰かの助けになるといいのですが。

7
sumit