2012-06-08 11 views

Respuesta

22
str.substring(0, str.indexOf("xxx")); 
+2

Nota: use 'str = str.substring (0, str.indexOf (" xxx "));' si la intención es asignar el valor modificado a la misma variable. Y esto producirá una cadena vacía si 'xxx' no aparece en la cadena original. – nnnnnn

1

Esto se llevará a todo, desde el inicio de la cadena hasta el comienzo de xxx.

str.substring(0,str.indexOf("xxx")); 
7

Justo:

s.substring(0, s.indexOf("xxx")) 

Un manejo de la entrada inválida y la falta de patrones coincidentes versión más segura sería:

function trump(str, pattern) { 
    var trumped = ""; // default return for invalid string and pattern 

    if (str && str.length) { 
    trumped = str; 
    if (pattern && pattern.length) { 
     var idx = str.indexOf(pattern); 

     if (idx != -1) { 
     trumped = str.substring(0, idx); 
     } 
    } 
    } 
    return (trumped); 
} 

que podríamos llamar con:

var s = trump("/abcd/efgh/ijkl/xxx-1/xxx-2", "xxx"); 
+1

Hmm, @WilliamVanRensselaer nos ganó a todos, se lo merece :) – haylem

+0

¡Debo ejercitar mi habilidad de mecanografía para poder escribir más rápido! :) –

+2

trump se debe recortar: D más uno: D – Gogol

2

Pruebe esto:

str.substring(0, str.indexOf("xxx")); 

indexOf encontrará la posición de xxx y substring cortará la pieza que desea.

0

Intente utilizar string.slice(start, end):

Si conoce el número exacto de caracteres que desea eliminar, de su ejemplo:

var str = "/abcd/efgh/ijkl/xxx-1/xxx-2"; 
new_str = str.slice(0, -11); 

Esto resultaría en str_new == '/abcd/efgh/ijkl/'

Por qué esto es útil : Si el 'xxx' se refiere a cualquier cadena (como dijo OP), es decir: 'abc', '1k3', etc, a nd no sabe de antemano qué podrían ser (es decir: no constantes), las respuestas aceptadas, así como la mayoría de las demás, no funcionarán.

Cuestiones relacionadas