字符串不为 null、空或空字符串

问题描述 投票:0回答:7

(在经典 ASP 中)检查字符串是否有某个字符串(长度大于 0)的最快、最简单的方法是什么,即 NOT“Null”、“Nothing”、“Empty”或 '' 空字符串

vbscript asp-classic
7个回答
8
投票

为了确保您处理的 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 错误
正确 错误
 错误
 错误
 错误

7
投票

这里有一个单行代码,通过将值与空字符串连接起来,避免了

Null
的所有麻烦。 它适用于
Null
Empty
""
,当然还有实际长度的字符串! 它唯一不(也不应该)工作的是
Nothing
,因为那是针对对象变量的,而字符串不是。

isNullOrEmpty = (Len("" & myString) = 0)

4
投票

你可以尝试这样的事情:

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

3
投票

您可以使用

VarType()
函数检查它是否是一个字符串,然后您可以检查该字符串是否不为空。 该语句只会传递非空字符串。

If VarType(MyString) = 8 Then
  If MyString <> "" Then 
    'String is Not Null And Not Empty, code goes here

  End If
End If

1
投票

这对我有用:

if mystring  = "" then wscript.echo "Empty string"
else wscript.echo "String is not empty"

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
%>

希望这对您有帮助。


0
投票

我在我的所有项目中都使用这个功能:

'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
© www.soinside.com 2019 - 2024. All rights reserved.