我必须从字符串中提取整数值。
它实际上是一个金额字段。
说字符串可以是
000000000000512
或 0000040000000
CInt("000000000000512")
参见转换函数:http://msdn.microsoft.com/en-us/library/s2dy91zy.aspx
如果您希望有大量数字,请使用 Clng,正如评论中已经指出的:
Clng("000000004000512")
否则你会遇到溢出,因为 vbscript 中变量的子类型 int 是 16 位
即使数字非常长,这也能工作
Function RemoveLeadingZeroes(ByVal str)
Dim tempStr
tempStr = str
While Left(tempStr,1) = "0" AND tempStr <> ""
tempStr = Right(tempStr,Len(tempStr)-1)
Wend
RemoveLeadingZeroes = tempStr
End Function
strNewFileName = RemoveLeadingZeroes("0009283479283749823749872392384")
我以前用过这种技术:
Replace(LTrim(Replace(str, "0", " ")), " ", "0")
注意,如果 str 中有有意义的空格,则此方法不起作用。
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
使用正则表达式:
Regex.Replace("000000000000512", "^0+", "") ' returns "512"
Regex.Replace("0000040000000", "^0+", "") ' returns "40000000"
如果您的字符串包含数字和字符,请使用 Do While 语句:
string = "00000456ABC"
Do While Left(string, 1) = "0"
string = Right(string, (Len(string)-1))
Loop
不幸的是,这个解决方案似乎不起作用:
string = "00000456ABC"
Do While Left(string, 1) = "0"
string = Right(string, (Len(string)-1))
Loop
这个,工作:
Do
string = Strings.Right(string, (Len(string) - 1))
Loop Until Strings.Left(string, 1) <> "0"
TextBox11.Text = string
format(myString,"0") 就可以了
示例A: 调试。?格式(“00000000000000000”,“0”) 0
示例B: 调试。?格式(“00000001234567890”,“0”) 1234567890
Function TrimLZ(str)
If Left(str, 1) = "0" Then
TrimLZ = TrimLZ(Mid(str, 2, Len(str)))
Else
TrimLZ = str
End If
End Function