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:
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!
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


0