String不是null,空或空字符串

时间:2014-09-29 19:04:07

标签: vbscript asp-classic

检查一个字符串是否有一些字符串(长度大于0),即“Null”,“Nothing”,“Empty”或“<”的最快最简单的方法(在Classic ASP中)是什么? em>空字符串

6 个答案:

答案 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的所有麻烦。它适用于NullEmpty"",当然还有实际长度的字符串!它不能(也不应该)工作的唯一一个是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
%>

希望这有用。