
JavaScriptで以下のようにテキストエリアで入力文字数を表示させているのですが、
全角文字も半角文字も同じ1文字としてカウントされてしまいます。
入力された文字が全角なら2、半角なら1としてカウントするように出来ないでしょうか?
================================================================
/*テキスト入力フォームで文字数を表示する*/
function ShowLength( str ) {
document.getElementById("inputlength").innerHTML = str.length + "文字";
}
----------------------------------------------------------------
<textarea cols="70" rows="10" onkeyup="ShowLength(value);" /></textarea>
<p id="inputlength">0文字</p>
================================================================
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
こんにちは
文字数ではなくてバイト数で取ってみては?
<script type="text/javascript"><!--
function ShowLength( str ) {
len = 0;
for(i=0;i<str.length;i++) {
var c = str.charCodeAt(i);
if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)){
len += 1;
}
else { len += 2; }
}
document.getElementById("inputlength").innerHTML = len + "文字";
}
//--></script>
<textarea cols="70" rows="10" onkeyup="ShowLength(this.value);" /></textarea>
<p id="inputlength">0文字</p>
もしくはmatchを使うとか
function ShowLength( str ) {
len = 0;
for(i=0;i<str.length;i++) {
STR = str.charAt(i);
if(STR.match(/\w/)) { len += 1; }
else { len += 2; }
}
document.getElementById("inputlength").innerHTML = len + "文字";
}

No.1
- 回答日時:
<html><body>
<input type="text" id="str">
<input type="button" value="Count" onClick="alert(strlen($V('str')))">
<script>
function strlen(s){for(c=0,i=0;i<s.length;i++){n=escape(s.charAt(i));c+=(n.length<4)?1:2;}return c;}
function $V(o) {return document.getElementById(o).value;}
</script></body></html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JQueryで2つのテキストフィー...
-
入力した文字を大文字に変換し...
-
<input>の選択肢をプルダウンメ...
-
Selectボックスの幅を自動で広...
-
javaScriptの変数をJavaの変数...
-
JavaScriptのfileオブジェクト...
-
<JavaScript>tableタグを入力不...
-
ASP.NETでNAME属性を固定にしたい
-
RegularExpressionValidatorの...
-
クリックされた罫表セルの行番...
-
同じ名前のセレクトがある場合...
-
onchangeイベントを強制的に発...
-
プルダウンで選択された値を別...
-
二次元配列に数字をランダムに...
-
sessionの値でボタンを活性・非...
-
cookie使用時にundefinedと表示...
-
doPostBack 関数について
-
【FORM】 リンク文字で submit...
-
tableの任意行にfocusをあてる
-
ラジオボタンにタブインデック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォームの値が0だったら空白...
-
onClickとsubmitの処理順序
-
JSPとJavaScriptの連携について...
-
JavaScriptのアレンジがしたいです
-
条件により、リンク先に画面遷...
-
テキストボックス入力を半角英...
-
WebサイトにOutlookマクロ(V...
-
Javaについて教えてください。 ...
-
javascriptで、イベントが発生...
-
dijit.form.ComboBoxについて
-
onChange()メソッド
-
手書き入力モードを利用して、...
-
PDFフォームで条件つき金額を表...
-
JavaScript のプログラム質問で...
-
2重でメール入力チェックをした...
-
テキストボックスを無効にする...
-
数字の1文字目を消したい
-
入力モード 自動 切り替え
-
日付入力欄の表示形式を自動的...
-
Webブラウザにてページのりロー...
おすすめ情報