Vbscript 是否有一个直接的函数来计算字符串中的数字?

Vbscript 是否有一个直接的函数来计算字符串中的数字?,vbscript,qtp,Vbscript,Qtp,我有一个包含数字的字符串。例如,“adf20j83n,m3jh2k9”。是否有一种直接的方法来计算字符串中的位数。在我的示例中,它应该给我“7”作为输出 另外,我尝试了RegExp,但在QTP的VBScript中它不起作用 顺便说一句,我不是在寻找循环之类的东西。只是一个直接的方法,或者一个让这个RegExp在QTP中工作的建议。我知道从技术上讲这是你说的,但这仍然是一个好方法 尝试使用此功能: Public Sub CountNumeric(ByVal input As String)

我有一个包含数字的字符串。例如,
“adf20j83n,m3jh2k9”
。是否有一种直接的方法来计算字符串中的位数。在我的示例中,它应该给我
“7”
作为输出

另外,我尝试了
RegExp
,但在QTP的VBScript中它不起作用


顺便说一句,我不是在寻找循环之类的东西。只是一个直接的方法,或者一个让这个
RegExp
在QTP中工作的建议。

我知道从技术上讲这是你说的,但这仍然是一个好方法

尝试使用此功能:

Public Sub CountNumeric(ByVal input As String)

    Dim numericCount As Integer = 0

    For Each c As Char In input
        If Char.IsDigit(c) Then numericCount += 1
    Next

    MessageBox.Show(String.Format("Number of numerics : {0}", numericCount)

End Sub
编辑: 您也可以尝试以下方法:

Dim charColl As MatchCollection = Regex.Matches(input , "^\d+$")
Console.WriteLine(charColl.Count.ToString())

我知道从技术上讲这是你说的,但这是一个好方法

尝试使用此功能:

Public Sub CountNumeric(ByVal input As String)

    Dim numericCount As Integer = 0

    For Each c As Char In input
        If Char.IsDigit(c) Then numericCount += 1
    Next

    MessageBox.Show(String.Format("Number of numerics : {0}", numericCount)

End Sub
编辑: 您也可以尝试以下方法:

Dim charColl As MatchCollection = Regex.Matches(input , "^\d+$")
Console.WriteLine(charColl.Count.ToString())

您可能需要通过其ProgId创建COM对象:

Dim re
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "\d"
re.Global = True

MsgBox "Digits: " & re.Execute("adf20j83n,m3jh2k9").Count
输出:

数字:7

您可能需要通过其ProgId创建COM对象:

Dim re
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "\d"
re.Global = True

MsgBox "Digits: " & re.Execute("adf20j83n,m3jh2k9").Count
输出:

数字:7

谢谢你,伙计,但我正在查看VBScript中是否有类似于RegExp的直接函数。我不知道为什么VBScript QTP不起作用。不过还是要谢谢你。添加了另一个函数,它可能会让我更喜欢你的东西——既不是VBScript,也不是有用的模式。谢谢你,伙计,但我正在查看VBScript中是否有类似于RegExp的直接函数。我不知道为什么VBScript QTP不起作用。不过还是谢谢你。添加了另一个函数,它可能会让我更喜欢你的东西,既不是VBScript,也不是有用的模式。