首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >验证VBA Access中的字符串格式

验证VBA Access中的字符串格式
EN

Stack Overflow用户
提问于 2014-05-03 03:53:03
回答 4查看 7K关注 0票数 4
  • 我想编写一个布尔函数来检查Medicaid in是否为必需的格式。
  • 即:2个alpha字符,后面是5个数字,后面是1个alpha字符。
  • 如果医疗补助ID不可用,则应将99999999手动输入文本框。

所以要么是9999999,要么是必需的医疗补助格式化字符串,返回一个值为True。

示例:

AZ12345Z NP54321J EM17345P

到目前为止,我有两个功能一起工作,但我弄乱了逻辑!!

谢谢

代码语言:javascript
运行
复制
Public Function isAlpha(cChar As Integer) As Boolean
'returns true if its a alphabetic character
    isAlpha = IIf((cChar >= 65 And cChar <= 90) Or (cChar >= 97 And cChar <= 122), True, False)   
End Function

Public Function CheckMedicaidIDFormat(strMedicaidID As String) As Boolean
    Dim blnResult As Boolean
    If strMedicaidID = "99999999" or If Len(strMedicaidID) = 8 And isAlpha(Left(strMedicaidID, 2)) = True And IsNumeric(Mid(strMedicaidID, 3, 5)) = True And isAlpha(Right(strMedicaidID, 1)) = True Then 

        blnResult = True
    Else
        blnResult = False
    End If
    CheckMecicaidIDFormat = blnResult
End Function
EN

回答 4

Stack Overflow用户

发布于 2014-05-03 10:23:29

虽然RegEx是解决这类问题的一个很好的通用解决方案,但是在本例中,简单的Like比较就可以了。

代码语言:javascript
运行
复制
Function IsValid(strIn As String) As Boolean
    IsValid = (strIn Like "[A-Z][A-Z]#####[A-Z]") Or strIn = "99999999"
End Function
票数 6
EN

Stack Overflow用户

发布于 2014-05-03 05:31:16

就像这样

代码语言:javascript
运行
复制
Sub Test()
MsgBox IsValid("AZ12345Z")
MsgBox IsValid("1AZ12345Z")
End Sub

测试功能

代码语言:javascript
运行
复制
Function IsValid(strIn As String) As Boolean
If strIn = "99999999" Then
IsValid = True
Else
Dim objRegex As Object
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.Pattern = "^[A-Z]{2}\d{5}[A-Z]$"
IsValid = .Test(strIn)
End With
End If
End Function
票数 3
EN

Stack Overflow用户

发布于 2014-05-03 04:01:18

VBA支持使用COM VBScript.RegExp对象的正则表达式,如下所示:

代码语言:javascript
运行
复制
Dim regex As VBScript.RegExp
Set regex = New VBScript.RegExp ' or CreateObject("VBScript.RegExp")
regex.Pattern = "^[A-Za-z][A-Za-z]\d\d\d\d\d[A-Za-z]$"

If medicId = "99999999" Or regex.Test( medicId ) Then
    ' code to handle valid Medicaid ID here
End If
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23440049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档