2012-05-09 9 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

私は長さをチェックしましたが、問題を与えた部分ではなく、もし私がtrim()をしても、問題は解決されました。ありがとう – peter

関連する問題