問題点
自作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
しておくと安心。