Quel est le moyen le plus rapide et le plus simple (sous Classic ASP) de vérifier si une chaîne a une chaîne (dont la longueur est supérieure à 0), c’est-à-dire NON "Null", "Nothing", "Empty" ou "' string vide
Pour vous assurer que le Variant que vous traitez est de sous-type "chaîne", vous avez besoin de la fonction VarType ou TypeName. Pour éliminer les chaînes de longueur zéro, vous avez besoin de Len (). Pour vous protéger des chaînes d'espace, vous pouvez ajouter un Trim ().
Code pour illustrer/expérimenter avec:
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
sortie:
cscript 26107006.vbs "ok" Vrai .__ "" Faux. " > False <Objet IRegExp2> False
Vous pouvez essayer d'avoir quelque chose comme ça:
Function nz(valToCheck, valIfNull)
If IsNull(valToCheck) then
nz = valIfNull
Else
nz = valToCheck
End if
End function
et vous l'utiliseriez comme ceci:
if nz(var,"") <> "" then
'--string has something in it
else
'--string is null or empty
end is
Voici un one-liner qui évite tous les problèmes avec Null
en concaténant la valeur avec une chaîne vide. Cela fonctionne pour Null
, Empty
, ""
et, bien sûr, des chaînes avec une longueur réelle! Le seul pour lequel il ne travaille pas (et ne devrait pas travailler) est Nothing
, parce que c'est pour les variables d'objet, dont une chaîne ne fait pas partie.
isNullOrEmpty = (Len("" & myString) = 0)
Vous pouvez utiliser la fonction VarType()
pour vérifier s’il s’agit d’une chaîne, puis vérifier si la chaîne n’est pas vide. Cette instruction ne fera que passer à travers une chaîne qui n'est pas vide.
If VarType(MyString) = 8 Then
If MyString <> "" Then
'String is Not Null And Not Empty, code goes here
End If
End If
Cela a fonctionné pour moi:
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
%>
J'espère que c'est utile.