【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
クラスに使用するものだから...か?
何か知見のある方、コメント頂けると助かります。
以上。