読者です 読者をやめる 読者になる 読者になる

へっぽこびんぼう野郎のnewbie日記

けろけーろ(´・ω・`)!

全角を2、半角を1と数えるJavaScriptのコードがわかりにくかったので自分用に書きなおした

kihon-no-ki.com

var countChar = function(words) {
  var len = 0;
  var txt = escape(words);  // escape('ほ%a') -> "%u307B%25a"
  for (i = 0; i < txt.length; i++) {
    if (txt.charAt(i) == "%") {
      // Unicode(%u)はlen+2(4個飛ばして次の文字へ[307Bは無視])
      if (txt.charAt(++i) == "u") {
        len += 2;
        i += 4;
      // %はlen+1(2個飛ばして次の文字へ[25は無視]),
      } else {
        len++;
        i += 2;
      }
    // その他の文字はふつうにlen+1。次の文字へ
    } else {
      len++
    }
  }
  return len;
}

でも向こうのほうが短いし、そこまでわかりにくくもないので、別に無理してこれ使う必要もないかな
じこまんぞく/(^o^)\