2011-02-09 23 views
17

前に、私はこのエラーを取得しています:SyntaxError:missing;声明

SyntaxError: missing ; before statement 

は、なぜ私はこのコードからそれを得るのでしょうか?どうすればこの問題を回避できますか?

var $this = $("input"); 
foob_name = $this.attr('name').replace(/\[(\d+)\]/, function($0, $1) { 
    return '[' + (+$1 + 1) + ']'; 
})); 
+8

最後を削除します ")"。 – Neil

+0

多分疑問な質問かもしれませんが、 '+ $ 1'は文字列を数値に変換するための怠惰な方法ですね。もしそうなら、ひどい。 –

+0

@ try-catch-finally:これを行うには正式にどのような方法がありますか? – mwfearnley

答えて

19

余分な括弧があるようです。

以下の部分は代入として解析されるため、インタプリタ/コンパイラは特定の条件が満たされた場合にセミコロンを検索したり、挿入したりしようとします。

foob_name = $this.attr('name').replace(/\[(\d+)\]/, function($0, $1) { 
    return '[' + (+$1 + 1) + ']'; 
}) 
+5

それが実際のエラーメッセージだったらそれはすばらしいでしょう! –

7

)括弧内のいずれかを削除します。

4

それとも、この(変数を再宣言)のようなものかもしれません:

var data = []; 
var data = 
+0

これは私の場合でした! – ch4rlie