永发信息网

vb如何验证特殊字符?

答案:4  悬赏:0  手机版
解决时间 2021-02-27 18:45
  • 提问者网友:聂風
  • 2021-02-27 01:57
就是说一个字符串里只能包含中文,英文和数字
不能有"@%<"之类的符号.
要怎么做?
最佳答案
  • 五星知识达人网友:污到你湿
  • 2021-02-27 02:08
如果 是一个字符串可以这样判断

Dim iStr As String

iStr = "你的字符%串..."

Dim i As Long
Dim s As String
Dim a As String

s = "@%<" ' 这里放你需要的所有非法符号

For i = 1 To Len(s)
a = Mid(s, i, 1)
If InStr(iStr, a) > 0 Then
'字符串含有非法字符
Debug.Print "字符串含有非法字符:"; a
Exit For
Else

End If

Next
If i > Len(s) Then
'字符串没有非法字符
Debug.Print "字符串没有非法字符"
End If

如果在 Text 输入的时候做判断...可以用下面的例子

Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim a As String
iStr = Chr(KeyAscii)
Dim i As Long
Dim s As String
Dim a As String
s = "@%<" ' 这里放你需要的所有非法符号
If InStr(s, iStr) > 0 Then
'输入非法字符
MsgBox "输入非法字符:" & iStr
Else
'输入字符正确
End If
End Sub
全部回答
  • 1楼网友:渡鹤影
  • 2021-02-27 04:30

public function deletechars(text as string) as string)

    dim s as string : s=`~!@#$%^&*()_-+=[{]}\|;:' & chr(34) & ",<.>?/"

    dim result as string :result=text

    dim i as long

    for i =1 to len(s)

    result=replace(result,mid(s,i,1),"")

    next

    deletechars= result

end function

  • 2楼网友:掌灯师
  • 2021-02-27 03:46
字符串是哪来的呢? 应该从来源着手, 比如是在文本框里得到的,就不要给文本框输入无关的字符 因为在文本框里就可以很简单的得到你的要求
  • 3楼网友:末日狂欢
  • 2021-02-27 02:45
设这个字符串为Str1 If InStr(1, Str1, "@", vbTextCompare) <> 0 Or InStr(1, Str1, "%", vbTextCompare) <> 0 Then '像这样用Or连接下去 '弹出错误 Else '格式正确的处理 End If
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯