检查一个字符串是否有一些字符串(长度大于0),即“Null”,“Nothing”,“Empty”或“<”的最快最简单的方法(在Classic ASP中)是什么? em>空字符串
答案 0 :(得分:8)
要确保您处理的Variant属于子类型&#34; string&#34;,您需要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 object> False
答案 1 :(得分:5)
你可以尝试这样的事情:
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
答案 2 :(得分:3)
这是一个单线程,通过将值与空字符串连接来避免Null
的所有麻烦。它适用于Null
,Empty
,""
,当然还有实际长度的字符串!它不能(也不应该)工作的唯一一个是Nothing
,因为那是对象变量,而不是字符串。
isNullOrEmpty = (Len("" & myString) = 0)
答案 3 :(得分:2)
您可以使用VarType()
函数检查它是否为字符串,然后您可以检查该字符串是否为空。该语句只传递非空的字符串。
If VarType(MyString) = 8 Then
If MyString <> "" Then
'String is Not Null And Not Empty, code goes here
End If
End If
答案 4 :(得分:1)
这对我有用:
if mystring = "" then wscript.echo "Empty string"
else wscript.echo "String is not empty"
答案 5 :(得分:0)
<%
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
%>
希望这有用。