tengo una cadena |0|0|0|0
Sustituir el primer carácter de la cadena de
pero hay que ser 0|0|0|0
¿Cómo se sustituye el primer carácter ('|'
) con (''
). por ejemplo replace('|','')
(con JavaScript)
tengo una cadena |0|0|0|0
Sustituir el primer carácter de la cadena de
pero hay que ser 0|0|0|0
¿Cómo se sustituye el primer carácter ('|'
) con (''
). por ejemplo replace('|','')
(con JavaScript)
Usted puede hacer exactamente lo que tiene :)
var string = "|0|0|0|0";
var newString = string.replace('|','');
alert(newString); // 0|0|0|0
You can see it working here, .replace()
en javascript sólo se sustituye la primera ocurrencia por defecto (sin /g
), por lo que esto funciona a su ventaja :)
Si necesita comprobar si el primer carácter i s una tubería:
var string = "|0|0|0|0";
var newString = string.indexOf('|') == 0 ? string.substring(1) : string;
alert(newString); // 0|0|0|0
var newstring = oldstring.substring(1);
Si la cadena es 0 | 0 | 0 | 0, entonces eliminará el primer 0 – MgS
@MgS, verdadero. Así que primero verifica cuál es el primer personaje. –
@Mgs El título de la pregunta pregunta cómo eliminar el primer carácter, no eliminar la primera instancia de un personaje específico. Esta es la solución general. –
Literalmente es lo que usted sugiere.
"|0|0|0".replace('|', '')
vuelve "0|0|0"
Si la cadena es 0 | 0 | 0, eliminará el primer 0 – MgS
str.replace(/^\|/, "");
Esto eliminará el primer carácter si es un |.
"|0|0|0|0".split("").reverse().join("") //can also reverse the string => 0|0|0|0|
Si no está seguro de lo que será el primer carácter (0 o |) entonces el siguiente tiene sentido:
// CASE 1:
var str = '|0|0|0';
str.indexOf('|') == 0 ? str = str.replace('|', '') : str;
// str == '0|0|0'
// CASE 2:
var str = '0|0|0';
str.indexOf('|') == 0? str = str.replace('|', '') : str;
// str == '0|0|0'
Sin la comprobación condicional, str.replace todavía se eliminará el primer ocurrencia de '|' incluso si no es el primer personaje de la cadena. Esto le dará resultados no deseados en el caso de CASO 2 (str será '00 | 0 ').
Este es un concepto erróneo que viene de otros lenguajes, en JavaScript el método '.replace()' no reemplaza * todas * las apariciones (a menos que use '/ g'), solo reemplaza el ** primero ** ocurrencia: http://www.w3schools.com/jsref/jsref_replace.asp –