正则表达式表达式以检查字符串中是否有任何特殊字符,例如(!,@<#,$,%< ^<等) [英] Regex Expression to check if there are any special characters in string like(!,@<#,$,%<^< etc)

查看:91
本文介绍了正则表达式表达式以检查字符串中是否有任何特殊字符,例如(!,@<#,$,%< ^<等)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用正则表达式验证用户输入的特殊字符,这是我尝试过的

I am trying to validate a user input for special characters using regular expression here is what i ave tried

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.

    Edit above solution worked for alphanumeric input but when user enters some Chinese or Japanese characters this function fails and returns false.

    推荐答案

    我通过将所有特殊字符放入数组并检查用户输入是否存在特殊字符来解决了这个问题

    I solved this problem by putting all special characters in an array and checked user input for existence of special characters

    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 
    

    这是我能想到的最简单的解决方案,并且有效..

    this was the most simple solution I could think of and it worked ..

    这篇关于正则表达式表达式以检查字符串中是否有任何特殊字符,例如(!,@<#,$,%< ^<等)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆