半角英数判別するには?

解決


初心者  2005-06-03 23:53:38  No: 122215

VBSのほうでも質問よいのでしょうか?
教えてもらえないでしょうか
小文字半角英数と大文字半角英数と半角数字の判別をするのを作っているのですが
Select Case Mid(val,1,1)
  Case "a" To "z"
    kazu="半角英小文字"
  Case "A" To "Z"
    kazu="半角英大文字"
  Case "0" To "9"
    kazu="半角数字"
  Case Else
    kazu="それ以外"
End Select

大体こんな感じにしたいのですがToのせいなのかエラーが出ます
これってA,B,C,D,E・・・という風に並べるしかないんでしょうか?
だれかお願いいたします


ぶぶ  2005-06-04 00:33:52  No: 122216

初心者さんのコードを貼り付けて実行してみましたが、ちゃんと出ましたよ。
ちょっと変えたのは、mid(val,1,1)のvalの定義と、valに内容を設定する
行を追加したのとkazu変数の定義くらいです。

ちなみにちょっと気になったのが、エラーはどんなエラーがでるんですか?

to で 並べずにいけますよ(^-^)


初心者  2005-06-04 00:45:25  No: 122217

エラー タイプ
Microsoft VBScript コンパイル エラー (0x800A0408)
文字が正しくありません。
/Scripts/a.asp, line 6
  Case "a" To "z"

というエラーです
いまだにこっちは出てます。
何が悪いんだろう・・・
TOが使えないのかと思ったりもしたんですけど違うみたいですし


初心者  2005-06-04 01:00:05  No: 122218

すいません、エラー間違えてます

エラー タイプ
Microsoft VBScript コンパイル エラー (0x800A0400)
ステートメントがありません。
/Scripts/a.asp, line 13, column 9
Case "a" To "z"
--------^

こちらでした

ちなみに、全文短縮して見たらこんな感じ
<html>
<%
Dim vol
vol="a"
Dim kazu

Select Case Mid(vol,1,1)
 Case "a" To "z"
  kazu="半角英小文字"
 Case Else
  kazu="それ以外"
End Select

Response.Write kazu

%>
</html>

なんかきっとお馬鹿なことをしてるよう泣きがするんですが
わからない・・・


ぶぶ  2005-06-04 01:13:11  No: 122219

ごめんなさい。
VBS をVBAと見間違えて試していました。
ちょっと見直します。


初心者  2005-06-04 02:03:28  No: 122220

もし、TOがつかえないのだとしたら
それにかわるものってあるんでしょうか?


通ってみた  2005-06-04 02:21:09  No: 122221

惜しいですね。Mid(val,1,1)をAsc(Mid(val,1,1))にしてみましょう。


初心者  2005-06-04 02:33:59  No: 122222

ASC・・・文字コードですか?
その場合はどうすればいいのだろう・・・??
単純にAsc(Mid(val,1,1))にすればいいというわけじゃないですよね?
エラーでますし。
詳しく教えてください


通ってみた  2005-06-04 03:03:18  No: 122223

AscってVBSにないの?(汗)

ていうか、よく考えたら変数に「val」はいただけないですなぁ
よく考えなくても気付くべきだったが


通ってみた  2005-06-04 03:05:43  No: 122224

Asc命令部分がエラー出ずに通ったならば、
Case部分を変えるべし

  Case "a" To "z"
    kazu="半角英小文字"
  Case "A" To "Z"
    kazu="半角英大文字"
  Case "0" To "9"
    kazu="半角数字"
  Case Else
    kazu="それ以外"

としている文字のところを

  Case Asc("a") To Asc("z")

などとしてみましょう
できたらいいのだが


魔界の仮面弁士  2005-06-04 03:08:52  No: 122225

> ていうか、よく考えたら変数に「val」はいただけないですなぁ
まぁ、VBScriptに Val関数はありませんけどね。

で。VBS の Case では、To や Is が使えませんので、
  AscCode = Asc(…)
  If AscCode <= ○ And AscCode >= △ Then
          :
  ElseIf AscCode <= □ And AscCode >= ▽ Then
          :
  End If
のように処理してみるとか。
もしくは、RegExpオブジェクトを利用するという手もありますね。


初心者  2005-06-06 18:57:36  No: 122226

いろいろありがとうございます
>通ってみたさん
ASCはありますが、文字コードなるものをどうやって扱えばいいのかわかってなかったです。
(プログラムというもの自体一週間前に始めたばかりの初心者ですので)
valは使わないほうがいいのですね。次からは使わないようにします

>魔界の仮面弁士さん
TOはやはり使えないのですね。どおりで・・・
(ISってなんだろ・・・?)
魔界の仮面弁士さんのやり方の意味がわかりましたので、
以下のように作り直しました。
(RegExpは調べるとIEのみのようなのでパスしました)

漢字と記号以外はこれで大丈夫なのかなと思ってます
抜けてるようなとこがあれば教えていただけると幸いです

AscCode = Asc("○")
If AscCode >= Asc("a") And AscCode <= Asc("z") Then
  rc="半角小文字英数"
ElseIf AscCode >= Asc("A") And AscCode <= Asc("Z") Then
  rc="半角大文字英数"
ElseIf AscCode >= Asc("0") And AscCode <= Asc("9") Then
  rc="半角数字"
ElseIf AscCode >= Asc("ぁ") And AscCode <= Asc("ん") Then
  rc="全角ひらがな"
ElseIf AscCode >= Asc("ァ") And AscCode <= Asc("ヶ") Then
  rc="全角カタカナ"
ElseIf AscCode >= Asc("A") And AscCode <= Asc("Z") Then
  rc="全角大文字英数"
ElseIf AscCode >= Asc("a") And AscCode <= Asc("z") Then
  rc="全角小文字英数"
Else
  rc=rc"漢字か、記号のなにか"
End If


初心者  2005-06-06 20:44:34  No: 122227

問題はなさそうなので解決にチェックします
皆様いろいろありがとうございました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加