GAS

【GAS】TypeError: XXX.replace is not a functionの原因と解決策

問題点

自作GASライブラリ内の .replace() を使ってデータを整形している部分でTypeError: XXX.replace is not a functionというエラーが発生。

//値の改行を削除する処理
function replaceBreak(data){
  var br = /[\r\n]+/g; //改行
  var rep = ""; //置換文字列
  return data.replace(br,rep);
}

原因

値が数値だと自動変換されずにエラーになってしまうのが原因。

同じライブラリを複数ファイルで使用していて、動くものと動かないものがあったので分かりずらかった。

解決策

.replace() する前に.toString()で文字列化する

//値の改行を削除する処理
function replaceBreak(data){
  var br = /[\r\n]+/g; //改行
  var rep = ""; //置換文字列
  return data.toString().replace(br,rep);
}

数値に .replace() をするとエラーになるので、数値が渡ってくるのか文字列が渡ってくるのか分からない場合は .toStringしておくと安心。

ABOUT ME
ytakeuchi
都内在住のフロントエンドエンジニア。2016年からフリーランスとして活動中。座右の銘は「昨日よりも楽に」。好きな言葉は「効率化」。こんな性格なのでプライベートではGoogle Apps Scriptばかり触っています。