テキストBOXを下記のように設定したとします。

<input type="text"name="***" maxlength="30">

この場合は、全角・半角関係なく文字数を30文字入力することができますよね?

今回、私がやりたいことは、バイト数の制限をやりたいんです。
例えばバイト数を30バイトにした場合は、
全角では15文字しか入力できなくて
半角では30文字入力制限をする方法を探しています。

何かよい方法はないものでしょうか???

このQ&Aに関連する最新のQ&A

A 回答 (3件)

はじめまして。



josyo_mさんの回答通りでmaxlengthでバイト数の制御をすることはできません。
Agentによってmaxlengthの解釈が異なっているためです。

汎用ロジックにするのでしたら、バイト数チェックを行うほかありません。しかし、LenB関数では半角英数字も2バイトで返ってくる恐れがあります。UNICODEです。
したがって、一度ansiに変換して半角英数字か全角かのチェックをして、バイト数を返すということをする必要があります。

For i = 1 to Len(buf)
 ret = Asc(mid(buf, i, 1))
 If ret <= &h00 OR ret > &hFF Then
  iLen = iLen + 2
 Else
  iLen = iLen + 1
 End if
Next
ちょっと強引なロジックのような気もしますが、こんな関数を作っておけばいいと思います。
    • good
    • 0
この回答へのお礼

ありがとうございましたm(__)m
masakinさんの作ってくださった関数をそのまま使用しました。
ちゃんと動作させることができました。

お礼日時:2002/03/28 17:06

お疲れ様です。



maxlengthの指定だけで出来るかは自分は知りませんが、
入力させるだけさせて最終的に「LeftB」で先頭数バイト分
だけ取るのだとダメですか?

処理:LeftB("あいうえお", 4)
結果:あい

間違っていたらごめんなさい。
    • good
    • 0
この回答へのお礼

ありがとうございましたm(__)m
そのまま使わさせていただきました。
すごく助かりました。

お礼日時:2002/03/28 17:03

お疲れ様です。



回答ではありませんが、その文字数指定はブラウザによって動作が違ったと思います。
IEは文字数単位で、ネスケ等はバイト単位だったような。。。

間違っていたらごめんなさい。

この回答への補足

お疲れ様です。早々に回答ありがとうございますm(__)m

そうなんですか・・・。
私の使っているブラウザはIEなんですけど、それじゃ、
IEだから文字数単位でしか制限できないということになるんですかね(・・?
どうにかして、バイト単位で制限したいものなんですが、無理なんでしょうか・・・。

補足日時:2002/03/27 17:04
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q【jQuery】いい文字数カウンターを探してます

jQuery(JavaScript)初心者です。
<input>や<textarea>など、フォームの文字数カウンターを探しているのですが、意外といいのが見つからず、お尋ねします。
次のような文字数カウンターのプラグインをご存じでしたら教えてください。

1)改行は数えない
2)キーボードを使わずマウスだけでコピペしても反応してくれる

Twitterのも、教えてgooのも、上記を満たしていないのでけっこう難しいんでしょうかね…

お詳しい方、よろしくお願いします。

Aベストアンサー

<textarea onchange="alert(this.value.replace(/\r|\n|\r\n/, '').length);"></textarea>

Q半角カナだけが入力できるは可能?

半角カナだけ入力できるテキストボックスは
作成可能でしょうか?

Vbscript だけを使って実現したいと思います。

Aベストアンサー

ちょっと面倒なやり方ですが、以下の様なものはいかがでしょう?
テキストボックスのonblurイベント時にVBScriptでチェックしています。

----サンプル-----
<html>
<head>
<title>半角カナチェック</title>
<script language="vbscript">
Function KanaCheck(strTarget)
Dim obj, i, strChar, intAscBuff
For Each obj in frm1
If InStr(obj.name, strTarget) > 0 then
For i = 1 To Len(obj.value)
strChar = Mid(obj.value, i, 1)
intAscBuff = Asc(strChar)
If intAscBuff < Asc("ア") Or intAscBuff > Asc("ン") Then
If Not (intAscBuff = Asc("゛") Or _
intAscBuff = Asc("゜") Or _
intAscBuff = Asc(" ") Or _
intAscBuff = Asc("(") Or _
intAscBuff = Asc(")") Or _
intAscBuff = Asc("-") Or _
intAscBuff = Asc(",") Or _
intAscBuff = Asc(".") Or _
intAscBuff = Asc("\") Or _
intAscBuff = Asc("/") Or _
intAscBuff = Asc("「") Or _
intAscBuff = Asc("」")) Then
If intAscBuff < Asc("A") Or _
intAscBuff > Asc("Z") Or _
intAscBuff < Asc("0") Or _
intAscBuff > Asc("9") Then
KanaCheck = False
msgbox obj.name & "は半角カナ文字のみの入力となります。"
Exit Function
End If
End If
End If
Next
End If
Next
KanaCheck = True
End Function
</script>
</head>
<body>
<form name="frm1" method="post">
<input type="text" name="txt1" onblur="KanaCheck('txt1')">
<input type="text" name="txt2" onblur="KanaCheck('txt2')">
<input type="text" name="txt3" onblur="KanaCheck('txt3')">
</form>
</body>
</html>

ちょっと面倒なやり方ですが、以下の様なものはいかがでしょう?
テキストボックスのonblurイベント時にVBScriptでチェックしています。

----サンプル-----
<html>
<head>
<title>半角カナチェック</title>
<script language="vbscript">
Function KanaCheck(strTarget)
Dim obj, i, strChar, intAscBuff
For Each obj in frm1
If InStr(obj.name, strTarget) > 0 then
For i = 1 To Len(obj.value)
strChar = Mid(obj.value, i, 1)
intAscBuff = Asc(strChar)
If intAscBuff < Asc("ア") Or intA...続きを読む

Q文字数カウントの質問です!

こんにちわ

Excel,PPT,Pdfの文字数のカウントを行っているのですが、
なにかこう、自動でやってもらえるのはないのでしょうか。

今は手作業で数取機を使ってカチカチやってます。
文字カウントだけで手が疲れます。。。

Wordは文字数カウントが「ツール」⇒「文字カウント」でできるのですが、
Excel,PPT,PDFの文字数カウントはどうすればいいのでしょうか。

文字カウントをマクロで一度挑戦しようとして本買ってあきらめました。

PDFは一度Wordに出力して上記の文字数カウンターを使っていますが、
このWordの文字数カウンターもイマイチなんですよね。。。

Excel PPT Pdf の文字数カウントを
簡単にしたいのですが何かいいのはありませんでしょうか。

それぞれでもいいので教えてください!
一番こまっているのはPDFとパワーポイントの文字数カウントです。
(とくにパワーポイントの文字数カウントです。)

Aベストアンサー

こんにちは。

私はここの文字数カウンターを使っています。

http://www.officecount.jp/

有料なのですが3,675円で使用できますよ。
文字数カウントされた文字がどこなのか見やすくPDFでわかります。

ワード、エクセル、パワーポイント、PDFの全部いけます。

無料のお試しがあるので、試されてはいかがでしょう。

参考URL:http://www.officecount.jp/

Q半長音(ー)及び半角文字を1バイトと取得する方法

VBScriptのLenB関数では、半角文字も2バイトと算出してしまうと聞きました。

半角文字、(現在すぐに対応したいのは半長音(ー))を1バイトと計算する方法がありましたら教えて下さい。

現在はWebを参考に下記の関数を使用したいと思っていますが、半長音(ー)は2バイトになってしまいます。

Function lngCnLen(strVal)
Dim i, strChr
lngCnLen = 0
If Trim(strVal) <> "" Then
For i = 1 To Len(strVal)
strChr = Mid(strVal, i, 1)
'2バイト文字は+2
If (Asc(strChr) And &HFF00) <> 0 Then
If Asc(strChr)=127 Then
lngCnLen = lngCnLen + 1
End If
Else
lngCnLen = lngCnLen + 1
End If
Next
End If
End Function

VBScriptのLenB関数では、半角文字も2バイトと算出してしまうと聞きました。

半角文字、(現在すぐに対応したいのは半長音(ー))を1バイトと計算する方法がありましたら教えて下さい。

現在はWebを参考に下記の関数を使用したいと思っていますが、半長音(ー)は2バイトになってしまいます。

Function lngCnLen(strVal)
Dim i, strChr
lngCnLen = 0
If Trim(strVal) <> "" Then
For i = 1 To Len(strVal)
strChr = Mid(strVal, i, 1)
...続きを読む

Aベストアンサー

Option Explicit
'参考 http://www.accessclub.jp/supbeg/131.html
Function samplepro()

MsgBox (Len("ABc")) '---A
MsgBox (LenB("ABc")) '---B
MsgBox (LenB(StrConv("ABc", vbFromUnicode))) '---C
MsgBox (Len("ほげふがー"))
MsgBox (LenB("ほげふがー")) '---B
MsgBox (LenB(StrConv("ほげふがー", vbFromUnicode)))

End Function

QWordの文字数について。

ワードを開くとまずはじめに、ステータスバーに約○○文字と表示されます。
そして文章をクリックすると文字数が普通にあらわれます。
この「約」ってなんですか?
どっちが本当の文字数なんでしょうか。
ちなみにはじめに表示される約の文字数よりも、
クリックしたときの文字数の方が多いですよね。

それで、本当のところ文字数はいくらあるのだろうと思いまして、
【文字数カウント】というホームページで調べたところ、
ワードよりも文字数が増えていたのですが。。。。

本当の文字数はいったい。。。。。

どれを信じればいいのでしょうか

ちなみにWord 2007 を使用しています

Aベストアンサー

直接の回答ではありません

Word2007で文字カウントを見る方法です

校閲タブ>左側の文章校正グループの「文字カウント」で細かく見ることができます。

QASPで全角数字を半角数字にするには?

ASPでページ上のテキストボックスに入力された全角数字を、
半角数字に変換(置換え?)することはできますか?

Aベストアンサー

テキストボックスが置いてあるページから次のページに移動する際にサーバ上で処理するっていうんなら BASP21 の StringConv 関数ってのはどうでしょうか。
http://www.hi-ho.ne.jp/babaq/basp21.html

VBScript だけで行うのであればこんなのを見つけました。
http://www.ac.cyberhome.ne.jp/~mattn/AcrobatASP/1.html

Q文字数

なぜ、文字数カウンタ等の文字数を図るものとワードの文字数を計る機能は文字数が一致しないのでしょうか?
どちらも空白は文字に数えてないのにかなり差があります
わかる方、お願いします

Aベストアンサー

具体的に、

Something Strange - 文字数カウンタ
http://s17.clara.co.jp/~tobiuo/damelabo/mojicount.shtml

で、
Hello, World!!
を数えると、スペースを含めて14文字でした。


> どちらも空白は文字に数えてないのに

上記のサイトは含めているようですが、その辺の勘違いでは?
具体的に差異が出る例文を挙げてみては?

参考URL:http://s17.clara.co.jp/~tobiuo/damelabo/mojicount.shtml

Q送信できる文字数に制限はあるのですか

お世話になります。 
<form action="submit.asp" method="GET">

上記のような記述でデーターを転送するのですが送信された内容が途中で
切れます。
method では送信できる文字数に制限が有るのでしょか ?

動作環境
Win2000 Server + IIS 5.0 + SQL 2000 Server + ASP5.0 を
使用しています。

Aベストアンサー

methodでなくてGetメソッドが問題なんです。Postが使えませんか?

参考URLを付けておきます。

参考URL:http://village.infoweb.ne.jp/~fwnd7095/perl/perl5_1.htm

QWORDで文字数、行数が指定どおりにならない

WORDで文字数、行数を以下のように指定しても、指定どおりにならないのですが、どうしたら指定どおりになるのでしょうか?

「ファイル」で「ページ設定」を選択、「文字数と行数」タブを選択、「文字数と行数の指定」項で「文字数と行数を指定する」を選択、「文字数」項と「行数」項を具体的に指定。

WORDでは、それぞれの文字のサイズが異なるので、一行当たり32文字と言っても、その行に含まれる文字の数は当然異なってくると思うのですが、そうだとすると、文字数の指定は、実際には何を指定しているのでしょうか?

また、行数については、指定どおりになっても良いと思うのですが、これも指定どおりにならないのは何故でしょうか?

Aベストアンサー

> WORDでは、それぞれの文字のサイズが異なるので、一行当たり32文字と言っても、その行に含まれる文字の数は当然異なってくると思うのですが、そうだとすると、文字数の指定は、実際には何を指定しているのでしょうか?

「ページ設定」の「文字数と行数」タブにある「フォントの設定」ボタンを押して表示される「フォント」ダイアログで指定したフォントとサイズが基準です。

従って、入力した文字列のフォントサイズを変更すれば、サイズに応じて文字数や行数が減少することがあります。

この対策として、文字列の「文字間隔」を狭くしたり、「行間」を「ページ設定」の「行間隔」と同じ行間隔に「固定値」として設定することができます。

ちなみに、2003までのWordでは、前者は「書式」→「フォント」の「文字幅と間隔」タブ、後者は「書式」→「段落」→「インデントと行間隔」タブで設定します。

Q半角の数値を全角に変換

半角の数値を全角に変換することは可能でしょうか?
ご存知のかたよろしくお願いします。

Aベストアンサー

ASPでどの言語を使われているかわかりませんが、
一般的なVBScriptでしたら、BASP21を利用して

Function han2zen( str )
 Set objBasp = Server.CreateObject("basp21")
 han2zen = objBasp.StrConv( str, 4 )
 Set objBasp = Nothing
End Function

という関数を作ってあげれば全角へ変換できます。
#BASP21については参考URLのページをご覧になって下さい

参考URL:http://www.hi-ho.ne.jp/~babaq/


人気Q&Aランキング

おすすめ情報