• ベストアンサー

入力された文字列のバイト数を知りたい。

こんにちは。 いまWebページ上のテキストボックスに入力されたテキスト文字列のバイト長を判定しようとして, 下記のようなコーディングをしました。 ~ n = escape(document.forms(0).txtProjectCode.value); if (!(n.length == 5)) ~ ところが上記のコーディングだと半角文字は正しくバイト長が取れるのですが,全角文字が入力されると正しくバイト長が取れません。 そうすれば全角文字が入力されても正しくバイト長が取れるでしょうか? 教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

まぁ、lengthは「文字数」の取得ですからねぃ。 1バイト文字は1、2バイト文字は2と返してやるようなのを書けばいいかと思いますよ。

参考URL:
http://www.kanaya440.com/contents/tips/javascript/006.html
tatsurou
質問者

お礼

STICKY2006さん 回答ありがとうございます。 教えて頂いた参考URLを使うと正しく取得できました。

関連するQ&A

  • 入力文字のバイト数

    いつも参考にしております。 入力文字のバイト数のカウントについて質問をさせていただきます。 入力フォームなどで、入力文字数の制限をしたいと考えております。 文字を入力するたびに、バイト数がテキストボックスに常に 表示されるようにしたいと考えております。 以下を参考にできるのではないとか思っておりますが。 <script language="javascript"> <!-- function check() {  txt = document.myFORM.myTEXT.value;  n = txt.length;  if (n > 10) alert("10文字以内にしてください"); } --> </script> <form name="myFORM"> <textarea rows="3" name="myTEXT" onChange="check()"></textarea> </form> ご教授お願いいたします。

  • エクセル:文字列のバイト数が欲しい

    セルB1に、  半角スペース、全角2文字、半角スペース、 と入力しました。 このシートの別のセルに、 =Len(B1)と入力すると4と表示され、 =LenB(B1)と入力すると6と表示されますので、 間違いなく「半角スペース・全角2文字・半角スペース」がB1に入っているはずです。 このシートのコードに、 Private Sub Worksheet_Change(ByVal Target As Range)   If Target.Address = "$L$1" Then     MsgBox LenB(Cells(1, 2).Value)   End If End Sub と打ちました。 ここでシート上のセルL1に何か入力するとメッセージボックスが出るのですが、 メッセージボックスに出る値は8です。 何が原因でしょうか。 6が表示されて欲しいのですが(文字列のバイト数が欲しい)、 どのようにコードを書けばよいでしょうか。 実際にB1に入れていた文字は、 1B です。 (半角スペース・全角数字1・全角英字B・半角スペース)

  • 文字列の長さの数え方

    input type=textに入力された文字の長さを 数えたいと思います。 入力には、全角も半角もOkにしたいのですが、 DB(oracle)に登録する為、バイト数のチェックを したいのですが、lengthだけではうまくチェックしきれません。 入力された内容の文字数、バイト数のチェックする方法を 教えて下さい。 宜しくお願いします。

  • テキストエリア入力文字数の表示で全角と半角を区別したいです。

    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> ================================================================ 宜しくお願い致します。

  • 文字入力について教えてください。

    1.文字の大文字・小文字固定入力   (1).半角で大文字のみ入力   (2).半角で小文字のみ入力   (3).全角で大文字のみ入力   (4).全角で小文字のみ入力   テキストボックスの入力で上記(1)~(4)の入力方法をしたいのですが   どおすればよいのか教えてください。   ※UCase・LCaseで変換できるのはしっているのですが    1文字単位でできたいのですが 2.半角の数字のみの入力   aの入力を受け付けないようなことおしたいのですが   できないでしょうか?

  • バイト数

    こんにちわ。 VB6でのすごく初歩的な質問なんですが、テキストボックスの中の文字のバイト数をLenB関数で取得して表示させようとしたのですが、半角も全角も1文字2バイトとでてしまいますがなぜでしょうか? お暇なときで結構ですのでどなたか回答をおねがいします。

  • Javaで、半角カナを2バイトとしてカウントしたい

    JavaでSJISで入力された文字列(全角、半角、英字、記号等混在)の桁数チェックで、 入力された半角カナのバイト数を、2バイトとみなしてカウントしたいと考えています。 例えば  全角の"テスト"の場合、バイト数は6  半角の"テスト"の場合も、バイト数は6 Javaで以下の様にコーディングしたところ、半角カナ部分はとりあえずうまく行ったのですが、 System.out.println 半角の"テスト".getBytes("EUC-JP").length; ->6 特殊な文字「まるの1、まるの2」等で試すと、特殊な文字のバイト数が1バイトとして カウントされてしまいます。 ※まるの1、まるの2は、この質問フォームで入力できないのでこの記載としています。 以降は(1),(2)と記載します。いずれも全角1文字の文字のことです。 System.out.println "(1)".getBytes("EUC-JP").length;   ->1      ※希望結果は2バイト System.out.println "(2)スト".getBytes("EUC-JP").length;   ->5      ※希望結果は6バイト 特殊な文字「(1)、(2)」や半角カナ(2バイトとしてカウント)を含めて、 簡単にバイト数をカウントすることはできないでしょうか。

  • Excelで入力できる最大文字数

    セルに入力できる文字列は32767文字とテキストに書いてあったのですが、これは半角ででしょうか?それとも全角ででしょうか?

  • VB.NET2003 テキストボックスに半角英数字以外入力させない

    お世話になります。 初めてコーディングを行っておりますが、 文字制御についてわからないのでご享受ください。 IMEの設定 Alphaになっているテキストボックスがあります。 こちらに、直接入力や、貼り付けなどで、 全角文字、半角カナが入力されないようにするにはどうしたらよろしいでしょうか? よろしくお願いします。

  • テキストボックスへの文字の入力について

    テキストボックスに入力できる文字を半角文字は最大30字、全角文字は最大15字に設定したいのですがどのようにすればできるのでしょうか?知っている方教えてください。

専門家に質問してみよう