- シンプルなカウンター関数:
function countSMSLength(message) {
var length = message.length;
var perSMS = 160; // 1つのSMSの最大文字数
// カウントを調整するためにマルチバイト文字数を考慮する
var mbLength = 0;
for (var i = 0; i < length; i++) {
if (message.charCodeAt(i) > 127) {
mbLength++;
}
}
var totalSMS = Math.ceil((length + mbLength) / perSMS);
return totalSMS;
}
この関数は、与えられたメッセージの文字数をカウントし、1つのSMSに収まるために必要なSMSの数を返します。マルチバイト文字を正しくカウントするために、charCodeAt()
メソッドを使用しています。
- テキストエリアとイベントリスナーを使用したリアルタイムなカウンター:
HTML:
<textarea id="messageInput" rows="4" cols="50"></textarea>
<p id="counter"></p>
JavaScript:
var messageInput = document.getElementById("messageInput");
var counter = document.getElementById("counter");
messageInput.addEventListener("input", function() {
var message = messageInput.value;
var smsCount = countSMSLength(message);
counter.textContent = "SMSの数: " + smsCount;
});
この例では、テキストエリアに入力されるメッセージを監視し、リアルタイムでSMSの数をカウントし表示します。addEventListener()
メソッドを使用して、テキストエリアのinput
イベントを監視しています。
これらの例を使って、約1000語のブログ投稿を作成し、JavaScriptを使用してSMSの文字数を計算する方法について説明することができます。