我必须从字符串中提取整数值 它实际上是一个数量字段。
Say string可以是000000000000512
或0000040000000
我只想要这个字符串中的整数值,即; 512/40000000
请在VB脚本中帮助解决这个问题
答案 0 :(得分:8)
CInt("000000000000512")
请参阅转换函数:http://msdn.microsoft.com/en-us/library/s2dy91zy.aspx
如果您希望有一个大数字,请使用Clng,如评论中已经指出的那样:
Clng("000000004000512")
否则你会有溢出,因为变体的子类型int在vbscript中是16位
答案 1 :(得分:4)
即使有一个疯狂的长号
,这也会有效{{1}}
答案 2 :(得分:1)
答案 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