• ベストアンサー

asp:所定の文字列が含まれているかどうか判別したい

hoge = request("hoge") if (もしhogeの中に「aaa」の文字列が含まれていたら) then response.write "aaaがありますよ!" end if という処理を作りたいです。 (もしhogeの中に「aaa」の文字列が含まれていたら) の処理がよく分かりません。HELPください。

  • kumar
  • お礼率21% (19/87)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

お世話になります。 ASP.NET なら If Not Request("hoge") Is Nothing AndAlso _   Request("hoge").IndexOf("aaa") <> -1 Then   ' aaa あるとき処理 End If http://msdn2.microsoft.com/ja-jp/library/k8b1470s.aspx .NET より前なら If Not Request("hoge") Is Nothing Then   If Instr(CStr(Request("hoge")), "aaa") <> -1 Then    ' aaa あるとき処理   End If End If http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/vblr7/html/vafctInStr.asp

kumar
質問者

お礼

ありがとうございます。これで解決です!

関連するQ&A

  • asp+vbscriptで「文字列があるか、無いか」の条件分岐をしたい

    asp+vbscriptで「文字列があるか、無いか」の条件分岐をしたい場合 mdbファイルを用いて、asp+vbscriptでWebページを作成しています。 mdbファイル内のテーブルデータ(文字列)が空白(データが無い)のであれば 何も表示しなくて、データが入っている場合、そのデータ(文字列)を 表示させたいのですが、指定方法がわかりません。 If rs.Fields.Item("xxxx") = "" Then ←ここの指定方法が知りたいです。 Else Response.Write "<tr>" & vbCrLf Response.Write "<td>" & rs.Fields.Item("xxxx") & "</td>" & vbCrLf Response.Write "</tr>" & vbCrLf End If 上記の通り「""」ではデータの有り無しに関わらず表示されてしまいます。 (文字データは無いので文字が出ませんが、枠が出てしまう) 文字列の「有り」「無し」の判定方法をご存じの方、ご教授頂けますでしょうか。 宜しくお願い致します。

  • 空文字列の判断方法

    お世話になっています。 空文字列を判断させる方法について教えて下さい。 下記のように、If分を作成しています。 ============================== If rs("USER") = "" Then Response.write "有効" Else Response.write "無効" End If ============================== これだと、空文字列をうまく判断してくれず、結果がすべて"無効"になってしまいます。rs("DEL_FLAG") = ""をrs("DEL_FLAG") = Nullにしても駄目でした。 空文字列を判断させるには、どのように記述したらよいでしょうか? どうしても空文字列を判断させる必要があります。 よろしくお願い致します。

  • 文字列の一番右が数字であるかどうかの判断

    お世話になります。 文字列の一番最後が数字である場合と数字でない場合について判断する方法を教えて頂きたいのですが、数字である場合 then以下の処理をするという風にしたいと思っています。ですが以下のところでつまずいて数字であるかどう確かめればよいのやらわからないので教えて下さい。    If Right("abcdef7", 1) = ここに何を書けばいいのでしょう?    Then 処理する。    end if という文なんですけど。=の右はなにをかけばいいのでしょうか?

  • 文字列に特定の文字の有無を調べたい。

    ある文字列に特定の文字が入っているか否かを調べたいのです。 AccessでVBAを使用して有無を調べたいんです。 具体的には下記の通りです。 カナ氏名が入力されているフィールドを検索して文字列を抽出したいんです。 "抽出"をカナにすると"チュウシュツ"ですよね。 所が私が使用しているテーブルのカナ氏名が入力されているフィールドには "抽出"は"チユウシユツ"と入力されているんです。 "チュウシュツ"と入力しても"抽出"は表示されず、"チユウシユツ"と入力しなければ "抽出"は表示されません。 従って"チュウシュツ"とキーボード入力してから先頭から2文字目と5文字目の "ュ"を"ユ"に再度変換しなければならないんです。 何か簡単な関数やプロシージャがないでしょうか? 何分初心者なんで下記の様な凄く長いプロシージャしか思い浮かびません。 宜しくお願いいたします。 (例) Public Function Kana_change() Dim kana As String '左から2桁目が小文字の時の変換 If Mid(kana, 2, 1) = "ァ" Then kana = Right(kana, 1) & "ア" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ィ" Then kana = Right(kana, 1) & "イ" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ゥ" Then kana = Right(kana, 1) & "ウ" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ェ" Then kana = Right(kana, 1) & "エ" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ォ" Then kana = Right(kana, 1) & "オ" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ャ" Then kana = Right(kana, 1) & "ヤ" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ュ" Then kana = Right(kana, 1) & "ユ" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ョ" Then kana = Right(kana, 1) & "ヨ" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ッ" Then kana = Right(kana, 1) & "ツ" & Mid(kana, 3, 13) Else kana = kana End If End Sub End Function

  • 文字列で渡された式

    質問です。 タイトルのままですが文字列で渡された式で 処理を決定させることはできるのでしょうか? たとえば ============================ dim str as string = "10 > 5" if strの文字列判定 then msgbox("TRUE") else msgbox("FALSE") end if ============================

  • Excel VBA 文字列の一部の取り消し線の判別

    ExcelのVBAでセルの中の文字列の一部に 取り消し線があるかどうかを知るにはどのように記述すればよいでしょうか。 例えば、A1セルの中にAAA,BBB,CCCと入力されていて BBBにだけ文字飾りの取り消し線が設定されているような場合、 以下のコードではELSEになってしまいます。 If ThisWorkbook.Sheets("Sheet1").Range("A1").Font.Strikethrough = True Then MsgBox ("このセルには取り消し線があります") Else MsgBox ("このセルには取り消し線はありません") End If

  • Request.Querystringについて

    ASPについて教えてください。 基本的な質問です。プログラム初心者です。 プログラムを前の方へ辿っていっても、 以下のスクリプトでRequest.QueryStringする"YM"や"MOVE"が定義されているところが見当たりません。 環境変数?にもそのようなものは、無さそうなのですが。 この"YM"や"MOVE"はどのようなものと考えれば良いでしょうか? スクリプトなので上から順番に処理されていくと理解していたのですが、 そもそも間違いでしょうか? <% sYM = Request.QueryString("YM") If sYM = "" Then iYear = Year(Now()) iMonth = Month(Now()) Else iYear = Left(sYM,4) iMonth = Right(sYM,2) End If sMove = Request.QueryString("MOVE") If sMove <> "" Then If sMove = "Next" Then ix = 1 Else ix = -1 End If iTmp = DateSerial(iYear, iMonth + ix, 1) iYear = Year(iTmp) iMonth = Month(iTmp) End If iLastDay = Day(DateSerial(iYear, iMonth + 1, 1 - 1)) iDay = 1 - Weekday(DateSerial(iYear, iMonth, 1)) + 1 Response.Write "" Response.Write "" Response.Write "" sPrg = "calendar.asp?YM=" & iYear & Right("00" & iMonth, 2) Response.Write "" Response.Write "" Response.Write "" For x = 0 To 6 If x = 0 Then sCol = "#EECCCC" Else sCol = "#EEEEEE" End If Response.Write "" Next For y = 0 To 5 Response.Write"" For x = 0 To 6 If x = 0 Then sCol = "#FFCCCC" Else sCol = "WHITE" End If If Date() = DateSerial(iYear, iMonth, iDay) Then sCol = "#FFE6CC" fToday = True Else fToday = False End If If iDay > 0 Then Response.Write "" Else Response.Write "" End If iDay = iDay + 1 If iDay > iLastDay Then Exit For End If Next Response.Write "" If iDay > iLastDay Then Exit For End If Next Response.Write "

  • エクセルマクロで、書式が違っても文字列を評価する方法

    文字列書式のセルと、標準書式のセルの数字文字列を比較したいのですが、うまくいきません。 書式が違うと、range.textも違う値になってしまうようです。 結局、現状では一度文字列変数の中に一度いれてから処理していますが、もっと他によい方法はないでしょうか? ------------------------------- If range1 = range2 Then  ・・・・・ End If ------------------------------- Dim temp1 As String Dim temp2 As String If temp1 = temp2 Then ・・・・・・ end If ------------------------------

  • エクセルVBAで、文字列の検索方法について

    先日、こちらで教えていただいたVBAがあります。 E列のセルの文字列の末尾が「計」のものを検索し、その行に色をつけるものです。 Sub iroiro() Dim x, y x = 1 Do If Right(Cells(x, 5), 1) = "計" Then For i = 2 To 5 Cells(x, i).Interior.ColorIndex = 3 Next End If x = x + 1 Loop Until Right(Cells(x, 5), 1) = "" End Sub これはばっちりで、助かっているのですが、今度は末尾ではなく、文字列中に「営業」という文字があるのを検索し、色をつけたいのです。 If Right(Cells(x, 5), 1) = "計" Thenを どう変えればいいのでしょうか?

  • ExcelVBAで文字列の制御をしたいのですが

    セルに5文字の数字を文字列として取り込む入力規制をしているのですが、現段階では小数点を入力してもチェックにはじかれません。 小数点その他記号等チェックではじきたいので以下のようなマクロを組みました。 Dim A As String  ’値の取得用の変数 Dim i As Integer 'ループカウンタ For i = i To 5 '左からi個の数値を取り出す A = Left(target.Text, i) '取り出した数の右側の文字を検索(小数点があるとすればこの位置) If Len(A) = 2 Then A = Right(A, i) End If If Len(A) = 3 Then A = Right(A, i) End If If Len(A) = 4 Then A = Right(A, i) End If If Len(A) = 5 Then A = Right(A, i) End If '取り出した文字が数値以外ならメッセージを表示 If IsNumeric(A) = False Then Call MsgBox("数値以外が入力されています", vbExclamation) Next これでも何とか希望通りの動きはしたのですが、あまりスマートなプログラムに思えません。 不勉強で申し訳ありませんが、関数で○文字目、ひと文字だけを検索できるもはないのでしょうか? そうすればスマートにいきそうなのですが... このプログラムをもっとスマートな形にできる方法をご存知の方がいらっしゃれば、ご教授お願いします。