textareaからの入力文字数を制限する伝統の技

[上に] [前に] [次に]
金銀ぱーるくん 1999/11/30(火) 00:12:27
ってありますか?
正規表現で実現しないと駄目なんでしょうか?

input type=text  の場合は maxlengt=30(すいませんスペル違います)
等で規制できますよね。

textarea では駄目なようなのですが、
必殺技があったら教えて下さい。

cocoa 1999/11/30(火) 01:01:56
伝統の技ではないかもしれませんが・・・、正規表現を使用しなくても、
length関数を使う事で制御できます。

例えば変数$commentにコメント文が代入されているとした場合、
length($comment)で、コメントの文字数を調べる事が可能です。

if (length($comment) >= 100)) { &error; } #100文字以上ならサブルーチンerrorへ

但し、当然これは英文字(1バイト文字)の場合ですので、日本語(2バイト文字)を
制御したいのであれば、2倍の数値を指定する必要があります。

他にも、substr関数を使用して切り捨て(取り出す?)てしまう方法等もあります。

$substring = substr($string,0,100); #変数$stringの0番目から100個の部分文字列を変数$substringへ

日本語の場合、先ほどと同様です。

金銀ぱーるくん 1999/11/30(火) 01:07:13
cocoaさん。 回答どうもです。

なるほど、そのような関数がありましたか。

input type=text は簡単に制限できるのに
なぜ、textareaでは出来ないのか?と思っていました。

if (length($comment) >= 100)) { &error; } #100文字以上ならサブルーチンerrorへ
↑ これ、いいっすね。 早速使わせて頂きます。

それにしてもperlは奥深いっすね。 
えっ? 僕の知識が浅いって? そういうつっこみはご遠慮下さい。

cocoa 1999/11/30(火) 01:16:10
ごめんなさい!さっきの書き込み「)」が一つ多かったです。
if (length($comment) >= 100) { &error; }
です・・・。

・・・・ 2000/01/17(月) 16:02:10
[[解決]]


[上に] [前に] [次に]