代码之家  ›  专栏  ›  技术社区  ›  WilliamK

使用经典asp检查字符串是否全部大写

  •  -1
  • WilliamK  · 技术社区  · 10 年前

    例如,如果一个由30个字母组成的字符串包含20个或更多大写字母,我需要将其标记为“所有大写字母”。因此,《基督山伯爵》可以,但《基督山的伯爵》不行。

    我在考虑从匹配的字母数开始 [^A-Z] ,但我该怎么做?

    2 回复  |  直到 9 年前
        1
  •  4
  •   user692942    10 年前

    与UCase(输入)进行比较,可以进行全有或全无检查;我更喜欢看UCase比率:

    Option Explicit
    
    Function Ucasity(s)
      If Len(s) Then
         Dim r : Set r = New RegExp
         r.Global = True
         r.Pattern = "[A-Z]"
         Dim m : Set m = r.Execute(s)
         Ucasity = m.Count / Len(s)
      Else
         Ucasity = 0
      End If
    End Function
    
    Function qq(s) : qq = """" & s & """" : End Function
    
    Dim s
    For Each s In Array( _
         "UPPERCASE but not ALL OR NOTHING" _
       , "UPPERCASE" _
       , "pipapo" _
       , "UPPERCASEuppercase" _
       , "" _
    )
       WScript.Echo qq(s), CStr(s = UCase(s)), UCasity(s)
    Next
    

    输出:

    cscript 39261181.vbs
    "UPPERCASE but not ALL OR NOTHING" False 0,65625
    "UPPERCASE" True 1
    "pipapo" False 0
    "UPPERCASEuppercase" False 0,5
    "" True 0
    
        2
  •  1
  •   Dijkgraaf José Ignacio Gutiérrez Guzmán    10 年前

    只需使用UCase函数

    <%
    
    dim a 
    a = "This is a test 1"
    dim b 
    b = "THIS IS A TEST 2"
    
    If a = ucase(a) then response.write(a & " is all upper")
    If b = ucase(b) then response.write(b & " is all upper")
    
    %>
    

    后果

    这是一个测试2都是上限

    推荐文章