2011-02-09 27 views
17

estoy recibiendo este error:SyntaxError: falta; antes de la declaración

SyntaxError: missing ; before statement 

¿Por qué puedo conseguir que a partir de este código? Cómo puedo evitar esto ?

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

eliminar el último ")". – Neil

+0

Tal vez una pregunta tonta, pero ... el '+ $ 1' es una forma perezosa de convertir la cadena en un número, ¿no es así? Terrible, si es así. –

+0

@ try-catch-finally: ¿cuál es la forma oficialmente preferida de hacerlo? – mwfearnley

Respuesta

19

Parece que tiene un paréntesis adicional.

La siguiente parte se analiza como una tarea para que el intérprete/compilador busque un punto y coma o intente insertar una si se cumplen ciertas condiciones.

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

o sería increíble si ese fuera el mensaje de error real! –

7

demasiados) paréntesis eliminar uno de ellos.

4

O puede que tenga algo como esto (redeclarandolos una variable):

var data = []; 
var data = 
+0

¡Este fue el caso para mí! – ch4rlie

Cuestiones relacionadas