Foros del Web » Programando para Internet » Javascript »

Cortar String

Estas en el tema de Cortar String en el foro de Javascript en Foros del Web. Buenas tardes, tengo una simple duda.. teniendo un string de la siguiente forma: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original var foo = 'BO58963' ; ...
  #1 (permalink)  
Antiguo 22/09/2011, 17:52
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 18 años
Puntos: 23
Cortar String

Buenas tardes,
tengo una simple duda..

teniendo un string de la siguiente forma:

Código Javascript:
Ver original
  1. var foo = 'BO58963';

Como puedo partir la cadena en un array para que me queden los dos primeros caracteres por un lado y el resto por el otro?

Me gustaria obtener un resultado similar a éste, pero sin tener que usar un caracter de por medio..
Código Javascript:
Ver original
  1. var foo = 'BO_58963';
  2. foo.split('_');


Saludos!
  #2 (permalink)  
Antiguo 22/09/2011, 18:11
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Cortar String

buenas,
utiliza match y expresión regular. si agrupas las expresiones, match te devuelve un array con varios elementos, siendo el primero el string pareado y el resto lo pareado por cada grupo individual. por ejemplo, una expresión tal que /(.{2})(.+)/ devuelve tres elementos. el segudo y tercero vendria siendo los elementos de interes. si consideras muy complicado las expresiones, entonces deberías mirar alguna solución con substring, solo que debes crear el array manualmente.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 22/09/2011, 18:58
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 18 años
Puntos: 23
Respuesta: Cortar String

Muchas gracias zerokilled,
aprovecho el post para hacer otra consulta que me esta haciendo doler la cabeza..

Código Javascript:
Ver original
  1. f = bg.split('#'); // "FF#000000"
  2.         gg = 'FF' + '000000';
  3.         ff = f[0] + f[1];
  4.         console.log( gg == ff ); // FALSE
  5.         ff = 'FF000000';
  6.         console.log( gg == ff ); //TRUE

A que se debe esa diferencia entre las cadenas ?

Muchisimas Gracias
  #4 (permalink)  
Antiguo 22/09/2011, 19:02
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Cortar String

tendras otra cosa porque a mi me devuelve true en ambas comprobaciones.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 22/09/2011, 19:19
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 18 años
Puntos: 23
Respuesta: Cortar String

Si perdon, el problema viene desde una parte anterior del script donde cambio el valor de la variable bg:

Código Javascript:
Ver original
  1. bg= filter[0]+'#'+hex; // hex es una funcion que convierte un RGB a HEX
  2.  
  3. // Si declaro de ésta forma bg, no me funciona el script que puse antes
  4.  
  5. bg= filter[0]+'#'+"000000";
  6.  
  7. //De ésta forma, si me lo toma como correcto


Será porque HEX devuelve un valor numerico?

Código Javascript:
Ver original
  1. rgb_to_hex : function(rgb) {
  2.         if (  rgb.search("rgb") == -1 ) {
  3.           return rgb;
  4.         } else {
  5.           rgb = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/);
  6.           function hex(x) {
  7.                return ("0" + parseInt(x).toString(16)).slice(-2);
  8.           }
  9.           a =  hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
  10.           return a.toUpperCase();
  11.         }
  12.     }

Gracias zerokilled por tus respuestas
  #6 (permalink)  
Antiguo 22/09/2011, 19:41
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Cortar String

intenta imprimir en la consola el valor resultante de la concatenacion de filter[0] y hex. de momento, la función rgb_to_hex devuelve correctamente el valor, un string en hexadecimal de seis caracteres. lo que sospecho es que debes tener conflicto en la variable hex o filter[0].
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 22/09/2011, 19:52
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 18 años
Puntos: 23
Respuesta: Cortar String

En la consola aparece: FF#000000 (o un numero similar)

Sinceramente me esta volviendo loco y no encuentro razón para que no ande, pero como el problema se trata de IE, no me sorprende mucho. El tema es así:

Código Javascript:
Ver original
  1. bg = filter[0]+'#'+hex; // Quedaria de la forma XX#XXXXXX
  2. ff = bg.replace('#','');   
  3. style = "-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#"+ff+",endColorstr=#"+ff+")\";"
  4. $('.bg').attr('style', style);


Como te dije antes, si a la variable bg la declaro así:

Código Javascript:
Ver original
  1. bg = "CC#000000";

El Internet Explorer me interpreta bien el resultado (IE8). Pero de la forma anterior no me toma el grandiente..

Tenes alguna idea de porque hace éste comportamiento?


Edito: se me hace la idea de que me interpreta la cadena como un String correctamente, pero la otra cadena con ese valor numerico dado por la funcion HEX me esta dando problema.. tendrá algo que ver?

Si hago a la funcion hex() de la siguiente forma:

Código Javascript:
Ver original
  1. rgb_to_hex : function(rgb) {
  2. return "XXXXXX";
  3. }
  4.  
  5. Anda sin problemas..

Última edición por McBlink; 23/09/2011 a las 07:30

Etiquetas: cortar, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:06.