JavaScript - comportamiento raro con funcion replace

   
Vista:

comportamiento raro con funcion replace

Publicado por som (10 intervenciones) el 16/10/2014 23:54:27
Hola, estoy liado con un programa que da formato a las celdas de una hoja excel y las deja listas para hacer un fichero sql y crear tablas, pero me estoy encontrando con una cosa muy curiosa al usar la funcion replace:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var X=document.getElementById('opc');
var z=X.value.length;
 
for(i=0;i<z;i++){
    if(X.value[i]=='    ' && X.value[i+1]=='    '){
        charz=X.value.substring(0,i-1);
        X.value=charz;
        break;
    }
}
 
var re=/    /g;
var ra=/\r?\n|\r/g;
var ri=/'NULL'/g;
charz=charz.replace(re,"','").replace(ra,"')," + '\n' + "('");
charz=charz.replace(ri,"NULL");
X.value=charz;

Lo que hace es quitar tabulaciones innecesarias y añadar comillas y parentesis donde toca, pero al llegar a la ultima linea de cada tabla en excel me encuentro esto:

shelves','17',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NULL

El ultimo NULL tiene una comilla que no se donde sale, he probado sustituyendo todos los NULL por otra cosa y todos cambian menos este. He probado poniendo otro nombre en la ultima celda y efectivamente es el ultimo valor de la ultima celda, tiene esa comilla y no se modifica. Alguna idea de lo que esta ocurriendo? Gracias.


EDIT: He encontrado el fallo, al principio hago un substring para eliminar el salto de linea que se genera al copiar las celdas de excel, y hago otro substring en el codigo que he mostrado, comiendome parte del 'NULL' dejandolo en 'NULL y por tanto fuera de las reglas de la funcion replace que he creado, perdon!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder