LoginSignup
6
3

More than 3 years have passed since last update.

Jqueryで動的に全角改行2文字 半角1文字で文字数カウント

Last updated at Posted at 2020-03-13

Jqueryで動的に文字数カウントをしたかったので作成
着火イベントは onInputでやってました
(IE9以前ではonInputが動かないので注意)


条件
1. 全角2文字
2. 半角1文字
3. 改行は2文字(CRLF CR LFすべて2文字)


以下、コード

// 引数について
// text カウントしたい文字列
// field カウントした文字数を挿入するid属性

function getLen(text, field){
    var result = 0;
    // ここで すべての改行コードを \nへ 変換し、文字数を取得
    var textLength = text.replace(/\r\n/g, '\n').replace(/\r/g, '\n').length;

    for (var i = 0; i < textLength ; i++){
        var chr = text.charCodeAt(i);
        if (chr === "\n".charCodeAt(0)) {
        // 改行の場合は2を加算
            result += 2;
        }
        else if ((chr >= 0x00 && chr < 0x81) ||
            (chr === 0xf8f0) ||
            (chr >= 0xff61 && chr < 0xffa0) ||
            (chr >= 0xf8f1 && chr < 0xf8f4)) {
            // 半角文字の場合は1を加算
            result += 1;
        } else {
            // それ以外の文字の場合は2を加算
            result += 2;
        }
    }
    //結果を返す
    document.getElementById(field).innerHTML = textLength;
};
6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3