Ver Mensaje Individual
  #8 (permalink)  
Antiguo 15/01/2004, 14:25
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 9 meses
Puntos: 1284
Hola derkenuke y JavierB:

He contrastado el ejemplo de JavierB con el mío, y hay una diferencia de 1, cuando se indexa se empieza por el 0, y por eso cuando en cuestiones numéricas hay fallos se suele devolver -1...

Por eso en mi ejemplo para que devuelva el mismo resultado hay que restar uno...

var total = lugar - 1; // cambiando esta línea.

Y para que la propuesta de JavierB devuelva -1 en los fallos, habría que cambiarlo en la linea que devuelve null

Por otra lado hay una chapucilla (creo ) en donde pone

cad=cad.substr(p+1,250);

supongo que 250 se refiere a la longitud de la cadena, si es así creo que sería conveniente

cad=cad.substr(p+1, this.length);

Usar los prototipos me parece una idea muy buena y elegante (ya lo dije en anteriores ocasiones)

Otra variante con prototipos sería:

Código PHP:
String.prototype.subcadena = function(cadenalugar)     {
    var 
dividir this.split(cadena);
    if (
dividir.length <= lugar) return -1;
    else    {
        var 
total = (lugar 1) * cadena.length;;
        for (
0lugar++)
            
total += dividir[i].length;
        return 
total;
    }

Saludos