将代码更改为删除而不是允许字符

Posted

技术标签:

【中文标题】将代码更改为删除而不是允许字符【英文标题】:Alter code to Remove instead of Allow characters 【发布时间】:2015-08-24 22:15:22 【问题描述】:

函数allows列出的字符(在这种情况下)

Case 48 To 57, 65 To 90, 97 To 122:

是否可以将其更改为Remove 列出的字符?

谢谢

Function AlphaNumericOnly(strSource As String) As String
    Dim i As Integer
    Dim strResult As String

    For i = 1 To Len(strSource)
        Select Case Asc(Mid(strSource, i, 1))
            Case 48 To 57, 65 To 90, 97 To 122:
                strResult = strResult & Mid(strSource, i, 1)
        End Select
    Next
    AlphaNumericOnly = strResult
End Function

【问题讨论】:

他们都来自这里***.com/questions/15723672/… 【参考方案1】:

如果您打算使用For ... Next - 只需添加Case Else

    For i = 1 To Len(strSource)
        Select Case Asc(Mid(strSource, i, 1))
            Case 48 To 57, 65 To 90, 97 To 122:
            Case Else:
                strResult = strResult & Mid(strSource, i, 1)
        End Select
    Next

正如@pnuts 指出和@brettdj answered - RegEx 更有效,在您的情况下,函数可能如下:

Function NonAlphaNumericOnly(strSource As String) As String
    With CreateObject("VBScript.RegExp")
        .Global = True
        .IgnoreCase = True
        .Pattern = "[\w]+"
        NonAlphaNumericOnly = .Replace(strSource, "")
    End With
End Function

【讨论】:

以上是关于将代码更改为删除而不是允许字符的主要内容,如果未能解决你的问题,请参考以下文章

如何将代码更改为交换指针而不是使用“临时”指针?

如果内容不存在,如何将此代码更改为 INSERT 而不是 UPDATE? [复制]

将 stripplot seaborn 的标记更改为字符串,而不是标记

如何将 python matplotlib.pyplot 图例标记更改为 1、2、3 之类的序列号,而不是形状或字符?

UIView contentstretch 将圆形更改为椭圆形,而不是药丸形状

使用 .eslintrc.js 将所有 eslint 错误更改为警告而不是错误