我正在尝试使用正则表达式验证用户输入的特殊字符,这是我尝试过的
Function IsValidName(strData As String) As Boolean
Dim RE As Object, REMatches As Object
Set RE = CreateObject("vbscript.regexp")
With RE
.MultiLine = False
.Global = True
.IgnoreCase = True
.Pattern = "[^a-zA-Z0-9]"
End With
IsValidName = Not RE.Test(strData)
End Function
编辑以上解决方案可用于字母数字输入,但是当用户输入一些中文或日语字符时,此功能将失败并返回false。
我通过将所有特殊字符放入数组中并检查用户输入是否存在特殊字符来解决此问题
Dim special_charArr() As String
Dim special_char As String
Dim charIndex As Integer
Dim TotalIndex As Integer
charIndex = 0
TotalIndex = 0
special_char = "!,@,#,$,%,^,&,*,+,/,\,;,:"
special_charArr() = Split(special_char,",")
For Each key in special_charArr
charIndex = Instr(UserInput,key)
TotalIndex = TotalIndex + charIndex
Next
If TotalIndex > 0 Then
MsgBox "Invalid Input"
Else
MsgBox "Valid Value"
End If
这是我能想到的最简单的解决方案,并且有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句