我想写一个方法,可以将任意字符串中的数字提取出来:比如:
1-199-222-30      提取结果:119922230
123-456-00        提取结果:12345600还有可能数字间不是‘-’号而是其他符号或者字母的情况,如何仅提取数字呢?

解决方案 »

  1.   

    用以下函数即可:Public Function GetNumInStr(ByVal str As String) As String
    Dim i As Integer
    Dim tempStr As StringFor i = 1 To Len(str)
       If IsNumeric(Mid(str, i, 1)) Then
          tempStr = tempStr & Mid(str, i, 1)
       End If
    Next iGetNumInStr = tempStr
    End Function
      

  2.   

    将以下内容保存为 test.vbs ,然后双击调用:)
    set reg = createobject("vbscript.regexp")
    reg.pattern = "[^0-9]"
    reg.global = true
    msgbox reg.replace("1-199-222-30","")
      

  3.   

    先遍历字符串,不是数字的都不要,得到一个新字符串。
    再用val()就可以了。
        Dim str As String
        Dim s As String
        Dim i As Integer    str = "1-199-222-30"
        For i = 1 To Len(str)
            If IsNumeric(Mid(str, i, 1)) Then
                s = s & Mid(str, i, 1)
            End If
        Next
        MsgBox s
        MsgBox Val(s)
    你自己把这段代码改成函数吧
      

  4.   

    推荐使用这个方法,放到vb里面也可以用的,改进下:
    Dim reg As Object
    Set reg = CreateObject("vbscript.regexp")
    reg.Pattern = "[^\d]"
    reg.Global = True
    MsgBox reg.Replace("1-199-222-30", "")