ツイッターの投稿文字数(半角280文字)などの制限がある場合、文字数をカウントする必要があります。
テキストエディタなどによくある機能ですが、Windows10のメモ帳にはその機能が無さそうですのでJavaScriptで動くフォームを作成してみました。
今回は手を抜いてChatGPTさんに作成してもらいました。
テキストエディタなどによくある機能ですが、Windows10のメモ帳にはその機能が無さそうですのでJavaScriptで動くフォームを作成してみました。
今回は手を抜いてChatGPTさんに作成してもらいました。
文字数をカウントする文章:
文字数:
以下はChatGPTさんに依頼した文書と結果です。
JavaScriptで半角は1文字、全角は2文字として文字数をカウントするスクリプトを教えてください。
以下は、JavaScriptで文字列の長さを半角1文字、全角2文字でカウントする方法の例です。
function countChars(str) {
var len = 0;
for (var i = 0; i < str.length; i++) {
var code = str.charCodeAt(i);
if (code >= 0x00 && code < 0x81) {
len += 1;
} else if (code === 0xf8f0 || (code >= 0xff61 && code < 0xffa0) || (code >= 0xf8f1 && code < 0xf8f4)) {
len += 1;
} else {
len += 2;
}
}
return len;
}この関数では、与えられた文字列 str の各文字の Unicode コードポイントを調べ、以下のように分類しています。
- 0x00 から 0x80 までの範囲のコードポイント: 半角文字
- 0xff61 から 0xff9f までの範囲のコードポイント: 半角カタカナ
- 0xf8f0 または 0xf8f1 から 0xf8f3 までの範囲のコードポイント: 半角囲み文字
- それ以外のコードポイント: 全角文字
上記の分類に従って、各文字の文字数をカウントしています。最終的に、文字列全体の長さを返します。
ChatGPTより引用
コメント