0
A
回答
2
如果你想最简单的方法,你可以用这个去:
Function MyFunction(myString As String) As Boolean
MyFunction = ((Len(myString) = 5) And (IsNumeric(myString)))
End Function
如果您想要更高效的方法,你必须针对不同的方法运行一些测试人们建议。
编辑:以前的解决方案不能很好地工作(请参阅前2条评论),但我让它在那里,因为它已被接受。这里是我会做什么:
Function MyFunction(myString As String) As Boolean
Dim myDouble As Double
Dim myLong As Long
myDouble = Val(myString)
myLong = Int(myDouble/10000)
MyFunction = ((Len(myString) = 5) And (myLong > 0) And (myLong < 10))
End Function
有在功能上没有错误的“保护”,因此,如果你尝试检查一个过大的数字,如22222222222222,它不会工作。
4
yourString Like "#####"
1
1
您还可以使用正则表达式来解决此问题。如果在VBA项目中包含Microsoft VBScript Regular Expressions 5.5,则可以使用RegExp
和MatchCollection
变量,如下面的函数中所示。 (这是在ozgrid.com应对this post的变形例。)
Public Function FiveDigitString(strData As String) As Boolean
On Error GoTo HandleError
Dim RE As New RegExp
Dim REMatches As MatchCollection
With RE
.MultiLine = False
.Global = False
.IgnoreCase = True
.Pattern = "^[0-9][0-9][0-9][0-9][0-9]$"
End With
Set REMatches = RE.Execute(strData)
If REMatches.Count = 1 Then
FiveDigitString = True
Else
FiveDigitString = False
End If
Exit Function
HandleError:
Debug.Print "Error in FiveDigitString: " & Err.Description
FiveDigitString = False
End Function
相关问题
- 1. 字符串操作(确保字符串总是以完全相同“//”前面)
- 2. 如何编写确保字符串正好是5位数字的Java代码
- 3. 确保字符串每n个字符都有一个中断字符
- 4. 确保字符串中没有整数?
- 5. 如何确保在一个字符串中只有一个http://?
- 6. 字符串完全匹配
- 7. 完全替换多个字符串
- 8. Jmock完全匹配字符串参数
- 9. 选择第一5个字符,在C#字符串数组
- 10. 确定一个字符串是不是另一个字符串
- 11. 分割字符串,每5个字符
- 12. 确保在字符串
- 13. ASP:的RegularExpressionValidator,确保有一个字符串
- 14. 检查一个字符串是否包含正确位置的子字符串
- 15. java验证字符串包含数字和搜索,以确保没有字符
- 16. 保存输入字符串字符到一个二维数组
- 17. 分裂字符串,但保持内部字符串完好?
- 18. 检查一个字符串是否全部是数字和10个字符长
- 19. 错误使用+ =一个字符追加到字符串:字符串是不完全相同的UINT8
- 20. 每N个字符/数字分割一个字符串/数字?
- 21. SQL - 根据搜索模式输出一个子字符串,确保首字符/最后一个字符串是全字
- 22. 在Coding4Fun PopUp控件中完全显示一个长字符串?
- 23. 的Android Linkify一个完全无关的字符串
- 24. C#的输入与一个字符串完全
- 25. Web客户端和DownloadString,确保字符串完全下载在TextBlock.Text
- 26. 为什么^ \ d + $匹配完全数字的字符串?
- 27. Android WebView未完全解码字符串
- 28. NSPredicate与字符串完全匹配
- 29. 在PHP中完全字符串输入
- 30. 如何确定一个字符串包含字符串
四位数负数将通过这两个测试 - 例如-3621有五个字符并且是数字。小数点(36.21)或千分隔符(3,621)也会导致问题 – barrowc 2010-11-20 03:06:03
够正确!另外,如果字符串是“00005”,它会通过我认为的验证。 – Tipx 2010-11-25 18:26:12