文字列に何らかの文字列(長さが0より大きい)がないか、つまり "Null"、 "Nothing"、 "Empty"、または '' 空の文字列
扱うVariantがサブタイプ「文字列」であることを確認するには、VarTypeまたはTypeName関数が必要です。長さゼロの文字列を除外するには、Len()が必要です。一連のスペースを防ぐために、Trim()をスローできます。
以下を使用して説明/実験するコード:
Option Explicit
Function qq(s) : qq = """" & s & """" : End Function
Function toLiteral(x)
Select Case VarType(x)
Case vbEmpty
toLiteral = "<Empty>"
Case vbNull
toLiteral = "<Null>"
Case vbObject
toLiteral = "<" & TypeName(x) & " object>"
Case vbString
toLiteral = qq(x)
Case Else
toLiteral = CStr(x)
End Select
End Function
Function isGoodStr(x)
isGoodStr = False
If vbString = VarType(x) Then
If 0 < Len(x) Then
isGoodStr = True
End If
End If
End Function
Dim x
For Each x In Array("ok", "", " ", 1, 1.1, True, Null, Empty, New RegExp)
WScript.Echo toLiteral(x), CStr(isGoodStr(x))
Next
出力:
cscript 26107006.vbs "ok" True "" False "" True 1 False 1.1 False True False <Null> False <Empty> False <IRegExp2オブジェクト> False
次のようなものを試すことができます:
Function nz(valToCheck, valIfNull)
If IsNull(valToCheck) then
nz = valIfNull
Else
nz = valToCheck
End if
End function
そして、あなたはこれを次のように使用します:
if nz(var,"") <> "" then
'--string has something in it
else
'--string is null or empty
end is
値を空の文字列と連結することにより、Null
の問題をすべて回避する1行のライナーを次に示します。 Null
、Empty
、""
、そしてもちろん、実際の長さの文字列!動作しない(または動作しない)唯一のNothing
は、オブジェクト変数用で、文字列はそうではないためです。
isNullOrEmpty = (Len("" & myString) = 0)
VarType()
関数を使用して文字列であるかどうかを確認し、文字列が空でないかどうかを確認できます。このステートメントは、空ではない文字列のみを渡します。
If VarType(MyString) = 8 Then
If MyString <> "" Then
'String is Not Null And Not Empty, code goes here
End If
End If
これは私のために働いた:
if mystring = "" then wscript.echo "Empty string"
else wscript.echo "String is not empty"
<%
Dim x,y
x = "abcdefg"
'counting length of string
y = Len(x)
Response.Write (y)
'checking string is empty or not
If Len(x) = 0 then
Response.Write ("<p>String is empty</p>")
Else
Response.Write ("<p>String is not empty</p>")
End If
%>
これが役に立てば幸いです。