如何从字符串中删除前导零

时间:2014-02-25 10:33:50

标签: vbscript

我必须从字符串中提取整数值 它实际上是一个数量字段。

Say string可以是0000000000005120000040000000
我只想要这个字符串中的整数值,即; 512/40000000
请在VB脚本中帮助解决这个问题

8 个答案:

答案 0 :(得分:8)

CInt("000000000000512")

请参阅转换函数:http://msdn.microsoft.com/en-us/library/s2dy91zy.aspx

如果您希望有一个大数字,请使用Clng,如评论中已经指出的那样:

Clng("000000004000512")

否则你会有溢出,因为变体的子类型int在vbscript中是16位

答案 1 :(得分:4)

即使有一个疯狂的长号

,这也会有效
{{1}}

答案 2 :(得分:1)

使用数字的绝对值。

http://ss64.com/vb/abs.html

Var = ABS(Var)

答案 3 :(得分:1)

我以前使用过这种技术:

  • 用空格替换零
  • 左装饰
  • 用零代替空格

Replace(LTrim(Replace(str, "0", " ")), " ", "0")

请注意,如果str中包含有意义的空格,则此方法无效。

答案 4 :(得分:0)

Function TrimLeadingZeros(value)
    TrimLeadingZeros = value    
    while left(TrimLeadingZeros, 1) = "0" and TrimLeadingZeros <> "0"
        TrimLeadingZeros = mid(TrimLeadingZeros, 2)
    wend
End Function

Function TrimLeadingZeros(value)
    dim i
    i = 1
    while i < len(value) and mid(value,i,1) = "0"
        i = i + 1
    wend
    
    TrimLeadingZeros = mid(value, i)
End Function

答案 5 :(得分:0)

使用正则表达式:

Regex.Replace("000000000000512", "^0+", "") ' returns "512"
Regex.Replace("0000040000000", "^0+", "") ' returns "40000000"

答案 6 :(得分:0)

如果您的字符串包含数字和字符,请使用 Do While 语句:

string = "00000456ABC"

Do While Left(string, 1) = "0"
     string = Right(string, (Len(string)-1))
Loop

答案 7 :(得分:-1)

Function TrimLZ(str)  
   If Left(str, 1) = "0" Then
      TrimLZ = TrimLZ(Mid(str, 2, Len(str)))
   Else
      TrimLZ = str
   End If
End Function