String 带零'的Lpad;vbscript中的

String 带零'的Lpad;vbscript中的,string,vbscript,String,Vbscript,我正在尝试在字符串左侧填充0。输出字符串的长度应为7。 这是我的密码: inputstr = "38" in = string(7 - Len(inputStr),0) & inputStr msgbox in 我得到了错误的预期声明 请帮帮我 谢谢中的是保留字,因此不能用作变量名,您必须传递字符串“0”而不是整数0,因此: inputStr = "38" result = string(7 - Len(inputStr), "0") & inputStr msgbox re

我正在尝试在字符串左侧填充0。输出字符串的长度应为7。 这是我的密码:

inputstr = "38"
in = string(7 - Len(inputStr),0) & inputStr
msgbox in
我得到了错误的预期声明 请帮帮我
谢谢

中的
是保留字,因此不能用作变量名,您必须传递字符串
“0”
而不是整数
0
,因此:

inputStr = "38"
result = string(7 - Len(inputStr), "0") & inputStr

msgbox result

此函数将使用给定的填充字符将输入值左填充到给定的字符数,而不截断输入值:

Function LPad(s, l, c)
  Dim n : n = 0
  If l > Len(s) Then n = l - Len(s)
  LPad = String(n, c) & s
End Function
输出:

>>> WScript.Echo LPad(12345, 7, "0")
0012345
>>> WScript.Echo LPad(12345, 3, "0")
12345
>WScript.Echo LPad(12345,7,“0”)
0012345
>>>Echo LPad(12345,3,“0”)

12345
以下代码的运行速度将提高5%:

inputStr = "38"
result = Right("0000000" & inputStr, 7)

msgbox result
功能:

Private Function LPad (str, pad, length)
    LPad = String(length - Len(str), pad) & str
End Function
使用:


但是,如果
inputStr
长度超过7个字符,此操作仍将失败。但存在截断和硬编码宽度和填充的风险。我刚刚使用了上述问题中提供的长度。这是一个很好的一行回答问题的答案,直观地说是正确的。。。这正是我所需要的答案——不是函数定义,而是一些简单的、尽可能快的、直观的东西,我可以直接输入(>31位无符号十六进制函数)代码。谢谢你,安德烈。
LPad(12345, "0", 7)