WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:文字数の取得

0:[投稿] 修行中 [2002/10/17 12:20 ][環境:WIN+IE UNIX系+Perl]

 お世話になります。
 フォームからの入力で、2文字以下の場合はエラーとして処理しています。
$moji =~ s/ //g;#空白を数に入れない
if(length($moji)<=2){&Error('エラー','Keyが短い'); }

これを、A A A と単語が2文字以下の場合もエラーとして処理したいのですが、方法が分かりません。
どうすれば良いのでしょうか。


1:[回答] andi [2002/10/17 12:47 ]

「単語」を「単語」と認識する条件は何でしょうか?


2:[質問] 修行中 [2002/10/17 13:25 ]

2文字以下のスペースで区切られた0-9a-zと日本語(S-JIS)を「単語」として処理できると助かります。


3:[質問] 修行中 [2002/10/17 13:29 ]

訂正です。
日本語は2バイトなので、1文字ですね。

例えば、
あ A
の入力はエラーとしたいです。


4:[回答] andi [2002/10/17 17:10 ]

う~ん・・・よくは分かりませんが、こんな意味ですか?

<script>
var str = "あいうえお かきくけ こさし すせ そ た a";
var arr = str.split(/ /);
for(var i in arr){
    if(arr[i].length < 2){
        alert(arr[i]);
    }
}
</script>


5:[回答] tetti [2002/10/17 18:22 ]

Shift_JISの全角1文字を1byteと数える length関数があれば事足りそうですね。

sub sjis_length {
   my $str = shift;
   my $char = 0;
   $char++ while $str =~ /[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]|[\x00-\x7F\xA1-\xDF]/g;
   return $char;
}


6:[回答] 修行中 [2002/10/17 19:10 ]

回答ありがとう御座います。
andiさんのサンプルがズバリです。
Perlで書くと、どうなるのでしょうか。
よろしければ、お願いします。

tettiさんのは、スペース区切りで複数に渡った時に通過してしまうので、
目的からはずれますが、別途で何かに生かせそうです。
ありがとうございます。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World