こんばんは。
ど素人なのですが、テキストエリアの文字数をカウント
したいと思い、さまざまなサイトを参考に作成しましたが、
スペース等の空白と改行をどうしても文字数として
カウントしているのしか見つけられませんでした。
純粋に文字数だけをカウントさせるにはどのように
すればよいのでしょうか。ちなみにこんな感じになっています。
こちらもいろいろ過去ログを調べてみたのですが
やはりわかりませんでしたので、どうか宜しくお願い致します。
<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>
No.5ベストアンサー
- 回答日時:
<html>
<body style="text-align:center">
<div style="font:bold 14pt 'MS UI Gothic'; color:tan">
入力フォーム
</div>
<FORM name="user">
<TEXTAREA name="comment" wrap="physical" cols="100" rows="50" onKeyup="
o=document.getElementById('slen');
n=this.value.replace(/\s| /gm,'').length;
o.value=n;
o.innerHTML=n;
o.style.color=(n>100)?'red':'tan';
document.getElementById('mes').innerHTML=(n>100)?'字 文字制限を越えました':'字';
document.getElementById('mes2').innerHTML=(n>100)?'':' あと、'+(100-n)+'文字です。';
">
100文字以内で!
</TEXTAREA><br/>
<span id="slen" style="border:1px solid #9ab;width:3em">
</span>
<span id="mes">字</span>
<span id="mes2"></span>
</FORM>
</body>
</html>
まさに求めていた通りの物が出来ました!
ありがとうございます。
本当に助かりました。
皆様も沢山のご指導ありがとうございました。
この場を借りてお礼申し上げます。
No.3
- 回答日時:
・ スペース等の空白と改行を見つけるには、正規表現を利用します。
var ss2 = ss.replace(/\s/g,"");
の場合、
/\s/
が、スペース等の空白と改行とマッチして、""に置き換えています。
以下のコードを参考にしてみてください。
------------------------------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head>
<script type="text/javascript">
function check(ta) {
var ss = ta.value;
var ss2 = ss.replace(/\s/g,"");
alert(ss2.length);
}
</script>
<head>
<body>
<h2>メッセージの値を変更してみてください。</h2>
<form method="post">
<table border=1>
<tr>
<td>メールアドレス</td>
<td><input type=text name=email size=20></td>
</tr>
<tr>
<td>メッセージ</td>
<td><textarea name=msg rows=5 cols=40 onchange="check(this)"></textarea></td>
</tr>
<tr>
<td>お名前</td>
<td><input type=text name=name size=20></td>
</tr>
</table>
</form>
</body>
</html>
早速の回答ありがとうございます。
しかし、このソースで試してみたのですが、
文字化けの様になってしまい確認できませんでした。。
おそらく私が何か変な事をしているのでしょうが。
せっかく詳しく書いてくださったのに申し訳ありません。
ありがとうございました。
No.2
- 回答日時:
document.user.counter.value.split(/\s/).join("")
スペースや改行で文字列を区切り、連結することで、
純粋に文字だけの状態に加工した文字列を返してくれるはずです。
この文字数をお作りになったスクリプトでカウントしてあげればどうでしょう。
ちなみにこのままだと全角スペースには対応できてませんので、
正規表現の部分(/\s/)を適宜変えてください。 /\s| / など
好きな文字をカウントから外すことができます。
かなり無理やりなような気がしますができないことは無いでしょう。
すばやい回答ありがとうございます。
試してみたのですが、だめでした。。
やり方がよくわかってない為だと思います。
せっかく丁寧に教えてくださったのに申し訳ありません。。
No.1
- 回答日時:
ネスケには対応できませんが…。
var Num = 0;
var ch;
for( var i = 0; i < document.user.comment.value.length; i++ ) {
ch = document.user.comment.value.charAt( i );
if( ch != ' ' && ch != '\n' ) {
Num++;
}
}
動作確認していないので、ちゃんと動かなかったらすみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- PHP php ログイン 1 2022/11/01 00:24
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
入力チェックの外部スクリプト...
-
JavaScriptの「.querySelectorA...
-
JavaScriptで、コピーボタンを...
-
画面表示とともにtableの指定の...
-
Javascriptの電卓で最初の何も...
-
チェックボックス付きのテーブ...
-
再度読み込みは出来ないのでし...
-
return trueとreturn falseの用...
-
<input>の選択肢をプルダウンメ...
-
<JavaScript>tableタグを入力不...
-
onclickで2個指定するには?
-
【javascript・PHP】プルダウン...
-
javascriptでセレクトボックス...
-
javascriptでASPにデータを渡す
-
javascriptで合計金額を算出し...
-
submitするとなぜか2度実行する
-
至急!GetElementById でtdの...
-
hiddenのvalueの値を変えたい
-
フォームの内容でリンク先URLの...
-
VB.NET DateTimeの型について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックボックス付きのテーブ...
-
JavaScriptの「.querySelectorA...
-
ラジオボタンとテキストボック...
-
画面表示とともにtableの指定の...
-
テーブル内のチェックボックス...
-
クリックしたラジオボタンの行...
-
ラジオボタンが選択されたらテ...
-
VBSでの自動ログイン
-
formで項目を連結したい
-
文字数を数える際に空白、改行...
-
Formのシリアライズができない
-
localStorageでのcheckbox制御
-
DOM追加時に表示されるが自動削...
-
【緊急】リアルタイムでエラー...
-
innerHTMLで自動生成された表を...
-
同一nameの input type="text"...
-
ボタン押下すると一行テキスト...
-
Javascriptの電卓で最初の何も...
-
チェックボックスの全選択・全...
-
繰り返し処理途中にJavaScript...
おすすめ情報