こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Microsoft ASPの条件分岐のソースコード

ISのWEBサーバーでASP Scriptでサイトを昔作ってもらったプログラムソースを参考にしながら
作成にトライしていますが、、ASP Scriptで特定の文字列が含まれる場合の処理方法ですが、
そのソースコードは電話番号の変数名を「tel」としており、この変数に値がない、つまりNULL値であれば、エラーメッセージを出す場合には、以下のような記述になっています

If tel = "" Then
err_msg = err_msg & "<br>電話番号を入力してください!"
Else
If get_len(tel) > 15 Then
err_msg = err_msg & "<br>T電話番号の文字数が多すぎます!"
Else
err_msg = err_msg & hafu_ck(tel,"TEL")
End If
End If

これを特定、文字が変数「tel」に(仮に「a」という文字が)含まれている場合には
「電話番号が間違えています!」というエラーメッセージを出したいのですがその場合、

If tel = "*a*" Then
err_msg = err_msg & "<br>電話番号が間違えています!"
Else
If get_len(tel) > 15 Then
err_msg = err_msg & "<br>T電話番号の文字数が多すぎます!"
Else
err_msg = err_msg & hafu_ck(tel,"TEL")
End If
End If

という記述では間違えているのでしょうか。
実際に記述しててみると「a」以外の文字でも
「電話番号が間違えています!」というエラーメッセージが出てきてしまいます。

また他にも「a」だけなく「b」も含まれている文字列の場合にも同様の処理をしたいのですが、
その場合、以下のような記述では間違っているのでしょうか?
If tel = "*a*" or "*b*" Then
err_msg = err_msg & "<br>電話番号が間違えています!"
Else
If get_len(tel) > 15 Then
err_msg = err_msg & "<br>T電話番号の文字数が多すぎます!"
Else
err_msg = err_msg & hafu_ck(tel,"TEL")
End If
End If

実際に記述しててみると前述と同様に「a」「b」以外の文字でも
「電話番号が間違えています!」というエラーメッセージが出てきてしまいます。


「複数の文字列の中に特定の文字が含まれている場合」のASPScriptでの
If文の書き方をご存知の方は教えて頂けませんでしょうか

投稿日時 - 2017-04-03 08:14:58

QNo.9312749

すぐに回答ほしいです

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

VBScriptは読める程度なので詳しくないですが
VBScriptの基礎も押さえずに思い込みだけで書こうとしていませんか?

>そのソースコードは電話番号の変数名を「tel」としており、この変数に値がない、つまりNULL値であれば、エラーメッセージを出す場合には、以下のような記述になっています

ソースコードは tel = "" ですから tel の値が空文字列""であればです。
空文字列とNULL値は同じではないです。

>If tel = "*a*" Then

tel の値が "*a*" と等しい場合であり、telの値に"a"が含まれていた場合ではないです。
やるなら

If InStr(tel, "a") != 0 Then

になるかと思います。

>If tel = "*a*" or "*b*" Then

思われているような内容にはなりません。
VBScriptの文法的にエラーのはずですし。

参考URL:https://msdn.microsoft.com/ja-jp/library/cc392489.aspx

投稿日時 - 2017-04-04 01:07:38

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)