• ベストアンサー

文字数チェック

下記だと文字数がなんか変なんです。???の状態です。 #文字を追加したりすると正常な文字数にならず。 #環境IE5.0 <SCRIPT language=JavaScript> function test() { alert( testarea.value.length ) ; } </SCRIPT> <TEXTAREA NAME="testarea">あいうえおか</TEXTAREA><BR> <A HREF="test.html" onmouseover="test()">文字数チェック</A>

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

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

こんな風にしてみては? function test() {   str = testarea.value.replace(/\r\n|\r|\n/g, '');   alert(str.length); } 全ての改行を抜いて、文字数をカウントします。

s-holmes
質問者

お礼

皆様、回答ありがとうございました。javascript初心者としてははじめての記述内容もあり、勉強になりました。そして、初心者としては、より簡単な方法で、今回の課題は解決させていただきます。 (^^;

その他の回答 (1)

  • 387
  • ベストアンサー率66% (40/60)
回答No.1

 テキストエリアの中で改行した時におかしくなりませんか?  Windows 上では、改行文字は復帰文字( "\r" )と行送り文字( "\n" )の 2文字で構成されますので、「あいう<改行>えおか」と入力した状態だと 8文字 となります。  改行文字があるかどうかは、   testarea.value.indexOf( "\r\n", i ) で検索できます。見つかれば 0から数えて何文字目にあるかが返ってき、見つから なければ -1 が返ってきます( i には 文字列の何文字目から検索するかを指定 します)ので、改行文字が何文字あるかを調べてその分減らしてあげましょう。 (改行文字を数えないのであれば 改行文字数×2を、1文字として数えるのであれば 改行文字数を引けば良いですよね) ※ Macintosh や Unix などでは、改行を構成する文字や文字数も異なります。

関連するQ&A

  • Textareaの入力文字数チェックについて(タグ無視)

    TEXTAREAの文字数チェックまではできるのですが しかし、今回はHTMLのタグも入力されます。 タグを無視した文字数もカウントをやりたいです。 PHPにはそのような関数があったような気がしますが ... JavaScriptではどのようにすれば実現できるのでしょうか? タグの文法エラーはない前提でよいです。 よろしくお願いします。 <html> <head> <title>入力文字数のチェック</title> <script language="JavaScript"> function check() { txt = document.form1.sample.value; n = txt.length; if (n > 100) alert("100文字以内にしてください"); } </script> </head> <body> <form name="form1"> <textarea rows="10" name="sample" onChange="check()" cols="20"></textarea> </form> </body> </html>

  • 入力文字のバイト数

    いつも参考にしております。 入力文字のバイト数のカウントについて質問をさせていただきます。 入力フォームなどで、入力文字数の制限をしたいと考えております。 文字を入力するたびに、バイト数がテキストボックスに常に 表示されるようにしたいと考えております。 以下を参考にできるのではないとか思っておりますが。 <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> ご教授お願いいたします。

  • 2つのJavaSを使う場合・・・

    こんにちは、他の質問もさせていただいているのですが、こちらもお願いいたします! 私はホームページに関して素人なのですが、WEBで例文などをコピーしてきて利用させて頂いています。しかし元が素人なのでわからない事が多く・・・ 例えば、 <script language="JavaScript"><!-- function check() { txt = document.myFORM.TEST.value; n = txt.length; if (n > 10) alert("10文字以内にしてください"); } // --></script> </head><body><form name="myFORM"> <textarea rows="3" name="myTEXT" onChange="check()"></textarea> </form></body></html> こういうテキストボックの入力文字を規制するスクリプトと、 <SCRIPT language="JavaScript"> <!-- function Check(){ if(document.myform.TEST.value==""){ alert("コメントを入力してください。"); return false; } return true; } // --></SCRIPT> という未入力だった場合アラートを出すスクリプトを2つ使いたい時はどのように設定すればいいのでしょうか? <SCRIPT language="JavaScript"><!-- の下に両方書きますよね?で、両方とも function check() というのを使うようなのですが・・・。 素人で全くわかりません。やはり勉強しようかと思いますが、とりあえず、上記を ご存知の方、よろしくお願いいたします!

    • ベストアンサー
    • HTML
  • アラートの初歩的使いかた

    下記を改造したいのですがうまくいかず。 「やっほ」の部分をscript内でなくonclickのところに「やっほ」と書いてscriptの部分では変数として受け取って表示したいのですが。 質問がうまく通じるかも心配なレベルです。 <script language=javascript><!-- function test(){ alert("やっほ") } //--> </SCRIPT> <A HREF="javascript:function voi(){};voi()" onClick="test()">テスト</A>

  • クッキーの保存と確認をしようとしたら

    すみません質問です。 クッキーの保存と確認をするスクリプトを組んだのですが、 保存ボタンを押したらscriptエラーが出てしまいます。 エラーの内容は-------------------------- ライン:1 文字:1 オブジェクトを指定してください。 ---------------------------------------- というものです。 以下のソースのどこに問題があるのでしょうか。 スクリプトが間違っているのなら直そうと思うのですが、 <script>~</script>を消去してもエラーになってしまいます。 お暇な人、教えてください。お願いします。 <html> <head> <title>COOKIE TEST</title> <script language=javascript> function set_c(key){ document.cookie = "dest=" + key ; } function get_c(c_Name){ c_Name += "="; theCookie = document.cookie + ";"; start = theCookie.indexOf(c_Name); if (start != -1){ end = theCookie.indexOf(,";",start); return unescape(theCookie.substring(start + c_Name.length, end)); } return false; } function conf_c(){ get_c(dest); alert(document.cookie.sousin); } function conf_c2(){ alert(document.cookie); } </script> </head> <body> <a href="javascript:set_c('http://www.yahoo.co.jp');">クッキー保存</a><br><br> <a href="javascript:conf_c();">クッキー確認</a><br><br> <a href="javascript:conf_c2();">クッキー確認2</a> </body> </html>

  • 文字をオンマウスすると、画像がかわり、クリックで他のページへいくようにしたい。

    初めてJavaを使いました。 『文字にマウスを当てると、上に置いた画像がかわり、さらにその文字をクリックすると、他のページにいくようにしたいのです』 文字にマウスを当てると、上に置いた画像が変わるとこまではできましたが、どうしても他のページへのリンクができません。 よい方法を教えてください。 作ったHTMLは以下のとおりです。 <SCRIPT language="JavaScript"><!-- function myChgPic(myPicURL){ document.images["myBigImage"].src = myPicURL; } // --></SCRIPT> <TABLE align="center"> <TBODY> <TABLE border="0" align="center"> <TBODY> <TR> <TD><IMG src="ankor.jpg" name="myBigImage" border="2"></TD> </TR> <TR> <TD><A href="javascript:void(0)" onmouseover="myChgPic('shanghai.jpg')">上海 <br> <A href="javascript:void(0)" onmouseover="myChgPic('italy.jpg')">イタリア <br> <A href="javascript:void(0)" onmouseover="myChgPic('canada.jpg')">カナダ    </A>    </TD> </TR> </TBODY> </TABLE> 上海、カナダ、イタリアという文字をクリックしたら、その写真にかわり、文字をクリックしたらそれぞれのページにリンクさせたいのです。

  • テキストエリア文字制限について

    テキストエリア文字制限について 失礼します。 javascript初心者です。 複数のテキストエリアの文字制限を行いたく 苦戦しております。 いろいろと検索してみましたが・・・ 2日ほど悩んでおります。 AとBでエラーが出た場合はCGIに流れず入力フォームに戻るのですが Bでエラーが発生しない場合CGIに流れてしまいます。 ですの文字数制限をしても結局CGIに流れてしまうのですが どのように記述すればよろしいでしょうか?? なんとか・・・ご教授いただければ幸いです。 よろしくお願いいたします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>入力文字数の制限</title> <script language="javascript" type="text/javascript"> <!-- var MAXLENGTH = 10; //入力許容最大文字数 function tareachk(frm){ var tmp = frm.vin1.value; var len = tmp.length; if(len > MAXLENGTH){alert("A入力可能な文字数は"+MAXLENGTH+"文字までです");} var tmp = frm.vin2.value; var len = tmp.length; if(len > MAXLENGTH){alert("B入力可能な文字数は"+MAXLENGTH+"文字までです");} else{frm.submit();} } // --> </script> </head> <body> <form action="ccccc.cgi" method="post"> <textarea name="vin1" rows="5" cols="30">10文字まで入力可能</textarea><br> <textarea name="vin2" rows="5" cols="30">10文字まで入力可能</textarea><br> <input type="button" value="GO" onclick="tareachk(this.form);"> </form> </body> </html>

  • htmlTextで書き出したテキストからjavascriptへ

    flashCS4 AS3.0で作業しています。 htmlTextでダイナミックテキストに <a href="javascript:void(0)" onclick="hoge();">テスト1</a> と書き込んでます。 そのswfが貼付けてあるhtmlに書いてある <script type="text/javascript" language="javascript"> <!-- function hoge(){ window.alert('ボタンを押しましたね'); } // --> </script> を動かしたいのですがウマく行きません。 どなたかいい方法しっている方いませんか?

  • javascriptに詳しい方

    下のスクリプトで見るべきページが二つ以上ある場合どのように記述すればいいのでしょうか? javascriptに詳しい方よろしくお願いいたします。 <html> <head> <script language="JavaScript"> <!-- var isClicked = false; //--> </script> </head> <body> <A href="check.html" onClick="isClicked = true">見るべきページ</a><br> <A href="test.html" onClick="if (!isClicked){ alert('先に見るべきページをクリックしてください'); return false; }">A</a><br> </body> </html>

  • 文字数を数える際に空白、改行をカウントしない方法

    こんばんは。 ど素人なのですが、テキストエリアの文字数をカウント したいと思い、さまざまなサイトを参考に作成しましたが、 スペース等の空白と改行をどうしても文字数として カウントしているのしか見つけられませんでした。 純粋に文字数だけをカウントさせるにはどのように すればよいのでしょうか。ちなみにこんな感じになっています。 こちらもいろいろ過去ログを調べてみたのですが やはりわかりませんでしたので、どうか宜しくお願い致します。 <SCRIPT Language="JavaScript"> <!-- function Check() { Br=navigator.appName; Num=document.user.comment.value.length; if(Br=="Netscape") document.user.counter.value=Num/2; else if(Br=="Microsoft Internet Explorer") document.user.counter.value=Num; } //--> </SCRIPT> <CENTER><B><FONT SIZE="4" COLOR="tan" FACE="MS UI Gothic">入力フォーム</FONT></B><BR> </CENTER> <CENTER> <FORM name="user"> <TEXTAREA name="comment" wrap="physical" cols=100 rows=50>文字数をチェックして見て下さい。</TEXTAREA><P> <INPUT type="button" value="文字数チェック" onClick="Check()"> <INPUT type="text" name="counter" size=3 maxlength=3>字</P> </FORM> </CENTER>