質問: str.match(/犬/); //変数strに代入した文字列に「犬」が含まれている場合 if ( check) { console.log('犬です'); } else{ console.log('犬ではない'); } } ``` ### 試したこと デバッグモードで動かすと3行目の Match 関数で 「実行をキャンセルしました。」のログを残してデバックが終了してしまう。 実行モードで動かすと正常に動作.。 ### 補足情報(FW/ツールのバージョンなど) デバッグモードが使えないので、開発効率が落ちて非常に困っています。 良きアドバイスで助けていただけると大変幸いです、よろしくお願いいたします。
回答: > > デバッグモードで動かすと3行目の Match 関数で 「実行をキャンセルしました。」のログを残してデバックが終了して > > > 本当ですね。こちらでも以下のコードで試してみましたが、スクリプトを V8ランタイムで実行すると起きるようです。例外(Exception)が発生している訳でもなく、即、デバッグが終了してしまいます。 ``` function test31() { var str = 'shibadog'; // 変数strに代入した文字列に「犬」が含まれている場合 try { // V8ランタイムでOK if (str.match(/犬/)) { console.log('犬1です'); } else { console.log('犬1ではない'); } // V8ランタイムでNG var check = str.match(/犬/); if (check) { console.log('犬2です'); } else { console.log('犬2ではない'); } } catch (ex) { console.log("Exception: " + ex); } } ``` 対応としては、提示のコードのように、`var check = str.match(/犬/);`とするのではなく、`if (str.match(/犬/)` とコーディングするか、JavaScriptエンジンをV8ランタイムではなく旧エンジン(Rhihoランタイム)にするとデバッグができました。お試しください。 !イメージ説明 尚、対象の文字列を`var str = 'shiba犬dog';` とマッチするよう修正してデバッグした場合は問題ありませんでした。Google Apps Scriptのデバッガー自体のバグのような気がします。