Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

用正则表达式限制一些特殊符号,只能输入汉字,数字和字母

时 间:2018-01-28 08:18:28
作 者:杨雪   ID:42182  城市:南京
摘 要:分享一个通用正则表达式函数,供大家参考
正 文:

问: 
用   If Me.收件人 Like "*[`~.&~#|\^@£$%*!/:;?><μ°§¨¤,-—_+【】、,。.^%()()={}{}?》《 ‘“'’”…¥]*" Then
  这个表达式判断收件人文本框是否包含上述特殊字符,会把字母和数字也判断进去,只能输入汉字,请赐教表达式问题在哪里?


解答:
用正则表达式


Function RegExpStr(str As String, Optional strType As Byte = 1) As String
    Dim objRegExp As Object
    Set objRegExp = CreateObject("VBSCRIPT.REGEXP")
    With objRegExp
        .Global = True
        Select Case strType
        Case 1    '只返回汉字
            .Pattern = "[^\u4e00-\u9fa5]"
        Case 2    '返回除汉字外
            .Pattern = "[\u4e00-\u9fa5]"
        Case 3  '只返回英文字母,不分大小写
            .Pattern = "[^A-Za-z]"
        Case 4  '只返回大写英文字母
            .Pattern = "[^A-Z]"
        Case 5  '只返回小写英文字母
            .Pattern = "[^a-z]"
        Case 6    '返回指定的标点符号
            .Pattern = "[^-?{[|#$%@^&*()+-`%,./';:~!

\\d+$]"
        Case 7
            .Pattern = "\d"    '返回除数字外文本
        Case 8
            .Pattern = "[^\d]"    '只返回数字
        Case 9   '数字并包含小数点
            .Pattern = "[^\d.]"
        End Select
        RegExpStr = .Replace(str, "")
    End With
End Function

问:

这个我也试了,结果一样,麻烦看下是不是引用错了


答:
你目的是什么  只能输入汉字?


问:

限制一些特殊的符号
但是能输入汉字,数字和字母


答:
RegExpStr(RegExpStr(Me.收件人, 7), 6)




Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助