GASで日本語文字列が入っている判定する方法

仕事で、セルに日本語(記号数字以外)が入っているかどうかを判定して処理を分岐したいというのがあったので、
備忘録として書いておきます。

GASで日本語が含まれているかどうかを判定するやりかたとして、
日本語であれば、文字列の長さとバイトでの長さが違うというのを利用して判定する方法をとりました。

function myFunction() {
  var testString = "1!$%{}(^Xあ";
  Logger.log(testString.length);
  Logger.log(strLenB(testString));
}

function strLenB(str){
  var len = 0;
  str = escape(str);
  for (var i = 0; i < str.length; i++, len++) {
    if (str.charAt(i) == "%") {
      if (str.charAt(++i) == "u") {
        i += 3;
        len++;
      }
      i++;
    }
  }
  return len;
}

//log結果
testString.length = 10.0
strLenB = 11.0

これで、文字列が入っているかをどうかがわかるので
下記のような感じで条件を書いてあげれば、文字列が含まれているときに処理をすることができます。

function myFunction() {
  var testString = "1!$%{}(^Xあ";
  if(strLenB(testString) > testString.length){
    Logger.log("日本語文字列が入っています。");
  }
}

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次