雪ん子パースペクティヴ

読むとちょっとタメになるエントリー。コメントあると嬉しいです。

【Google Apps Script】文字列と配列の要素にある空白を取り除く。

結局は正規表現と向き合うことになる。

 

はろー、yukiです。

 

文字列の空白処理はよくあることです。

今回は文字列のある変数と、文字列のある配列要素に対する処理です。

結局のところ、配列も変数に格納し、空白処理をしています。

 

それでは、コードをご参考ください。

//////////////////////////////////////////////////////////////////
///                                                            ///
///    文字列と配列の要素にある空白を取り除き、文字列を検索    ///
///                                                            ///
//////////////////////////////////////////////////////////////////

var textStr = "ここ' 'に' 'テキスト";
var targetAry = ["ここ' 'に' 'テキスト"];
var searchStr = "テキスト";

// 文字列のスペースを削除
function replaceStr() {

  textStr = textStr.replace(/\s+/g, "");
  Logger.log(textStr);
 
  // replaceメソッド
  // ※JavaScriptを参照
  // https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/replace
  
  // 正規表現
  // 最初と最後の/: 正規表現リテラル
  // \s: 垂直タブ以外のすべての空白文字
  // +: 1回以上の繰り返し
  // g: グローバルマッチのフラグ(グローバルな検索と置換)
  // https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions
  // https://murashun.jp/blog/20190215-01.html
  
  
  // 文字列を検索
  if(textStr.match(searchStr)){
     Logger.log(textStr.match(searchStr));
  }
  
  // matchメソッド
  // 戻り値はオブジェクト
  // https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/match
  
}


// 配列の要素のスペースを削除
function replaceAry() {

  // 配列の長さ(要素)の数で繰り返し
  for(var i = 0; i <= targetAry.length; i++){
    var textAryStr = targetAry[i];

    if(textAryStr){
      textAryStr = textAryStr.replace(/\s+/g, "");
      Logger.log(textAryStr);
      
      //
      // 文字列を検索をする場合、replaceStr関数と同じ
      //
      
    }
  }
}

 

 

自分でコーディングしておいてなんですが、よく分からない点が一つ。

配列での空白削除の処理で、なぜ一度if(textAryStr)をしなければいけないのか。

targetAry[i]replaceメソッドをが通らず、苦肉の策でif文を用意したらうまくいきました。

replaceメソッドはGASのTextクラスに使用するものだから...か?

 

何か知見のある方、コメント頂けると助かります。

 

 

以上。 

 

 

Googleアドセンス