2012-05-09 23 views
0

如果我在VBScript中运行下面的代码都按预期工作,如果我在ASP(IIS 7)中运行它,我得到这个错误的结果。有谁知道为什么?不同的结果ASP比VBScript

mumber = "027609366" 
WScript.Echo Left(number, 2) & " " & _ 
      Mid(number, 3, 2) & " " & _ 
      Mid(number, 5, 2) & " " & _ 
      Right(number, 3) 

' vbs => 03 76 09 366 (right) 
' asp => 03 76 09 66 (wrong) 

我现在用它的工作原理如下:

Left(number, 2) & " " & _ 
Mid(number, 3, 2) & " " & _ 
Mid(number, 5, 2) & " " & _ 
Mid(number, 7) 

但我不知道为什么会这样。

+1

这不能是确切的代码(因为你指定'mumber',但是作用于'number')。 ASP案例中'number'的末尾是否有额外的空间? –

+1

VBScript和经典ASP使用相同的语言核心。结果不能不同。 – Tomalak

+3

一般提示:*总是*使用'Option Explicit'来防止变量名称中的拼写错误。在这种情况下坚持用'Mid()'。代码看起来不仅更加一致,而且在字符串末尾有空格时也会产生正确的结果 - 而Right()会产生不同的结果。 – Tomalak

回答

2

ASP代码是用VBScript编写的,所以结果不会不同,因为它们在技术上是一样的。

在某个地方的某个数字的末尾是否有额外的空间,可能导致数字显示不正确?

+0

我检查了长度,但没有发现问题,如果我做一个修剪()的问题也解决了,谢谢 – peter