(在经典 ASP 中)检查字符串是否有某个字符串(长度大于 0)的最快、最简单的方法是什么,即 NOT“Null”、“Nothing”、“Empty”或 '' 空字符串
为了确保您处理的 Variant 是子类型“string”,您需要 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 “好的” 正确 ““ 错误的 “ “ 真的 1 错误 1.1 错误 正确 错误错误 错误 错误
这里有一个单行代码,通过将值与空字符串连接起来,避免了
Null
的所有麻烦。 它适用于 Null
、Empty
、""
,当然还有实际长度的字符串! 它唯一不(也不应该)工作的是Nothing
,因为那是针对对象变量的,而字符串不是。
isNullOrEmpty = (Len("" & myString) = 0)
你可以尝试这样的事情:
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
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
%>
希望这对您有帮助。
我在我的所有项目中都使用这个功能:
'Returns True if [Empty] or [NULL] or [Empty String] or [Empty Object]
Function IsBlank(Value)
If IsEmpty(Value) or IsNull(Value) Then
IsBlank = True
ElseIf VarType(Value) = vbString Then
If Value = "" Then
IsBlank = True
Else
IsBlank = False
End If
ElseIf IsObject(Value) Then
If Value Is Nothing Then
IsBlank = True
Else
IsBlank = False
End If
Else
IsBlank = False
End If
End Function 'IsBlank