ultimo - substring javascript
Eliminar el primer carácter de una cadena en Javascript (12)
Quiero eliminar el primer carácter de una cadena, si el primer carácter es un 0. El 0 puede estar allí más de una vez.
¿Existe una función simple que verifique el primer carácter y lo elimine si es 0?
En este momento, lo estoy intentando con la función JS slice()
pero es muy incómodo.
¿Has substring
función de substring
?
string = string.indexOf(0) == ''0'' ? string.substring(1) : string;
Aquí hay una referencia: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substring
Y siempre puedes hacer esto por varios 0s:
while(string.indexOf(0) == ''0'')
{
string = string.substring(1);
}
Aquí hay uno que no asume que la entrada es una string
, usa substring
y viene con un par de pruebas de unidad:
var cutOutZero = function(value) {
if (value.length && value.length > 0 && value[0] === ''0'') {
return value.substring(1);
}
return value;
};
Desde la implementación de Javascript de trim ()> que elimina y marca los espacios iniciales y finales de las cadenas. Aquí hay una implementación alterada de la respuesta para esta pregunta.
var str = "0000one two three0000"; //TEST
str = str.replace(/^/s+|/s+$/g,''0''); //ANSWER
Implementación original para esto en JS.
string.trim():
if (!String.prototype.trim) {
String.prototype.trim = function() {
return this.replace(/^/s+|/s+$/g,'''');
}
}
El código muy legible es usar .substring()
con un inicio configurado para indexar el segundo carácter (1) (el primer carácter tiene índice 0). El segundo parámetro del método .substring()
es en realidad opcional, por lo que ni siquiera necesita llamar a .length()
...
TL; DR: Eliminar el primer carácter de la cadena:
str = str.substring(1);
...sí, es así de simple...
Eliminar algunos caracteres en particular:
Como sugirió @Shaded, simplemente haga un bucle mientras que el primer carácter de su cadena es el carácter "no deseado" ...
var yourString = "0000test";
var unwantedCharacter = "0";
//there is really no need for === check, since we use String''s charAt()
while( yourString.charAt(0) == unwantedCharacter ) yourString = yourString.substr(1);
//yourString now contains "test"
.slice()
vs .substring()
vs .substr()
Cita de (y más sobre eso en) ¿Cuál es la diferencia entre String.slice y String.substring?
También señala que si los parámetros a cortar son negativos, hacen referencia a la cadena desde el final. La subcadena y el substr no.
Esto puede ser un poco excesivo, pero oye, me aburrí.
String.prototype.deleteAt = function (index, predicate) {
var c = this[+index];
if (!predicate || predicate(c)) {
var before = this.substring(0, Math.max(index - 1, 0));
var after = this.substring(Math.min(index + 1, this.length - 1));
return before + after;
}
return this;
}
var str = "0ABC";
var newStr = str.deleteAt(0, function (c) {
return c === ''0'';
});
Sin embargo, esta versión puede ser de mayor utilidad para usted.
String.prototype.trimStartWhile = function (predicate) {
if (typeof predicate !== "function") {
return this;
}
var str = this;
while (str.length > 0 && predicate(this[0])) {
str = str.substring(1);
}
return str;
}
var str = "0ABC";
var newStr = str.trimStartWhile(function (c) {
return c === ''0'';
});
La forma más fácil de eliminar todos los 0
s iniciales es:
var s = "00test";
s = s.replace(/^0+/, "");
Si solo elimina un único carácter 0
, como lo indica la pregunta, puede usar
s = s.replace(/^0/, "");
Qué pasa
let a = "My test string";
a = a.substring(1);
console.log(a); // y test string
Utilice .charAt()
y .slice()
.
Ejemplo: http://jsfiddle.net/kCpNQ/
var myString = "0String";
if( myString.charAt( 0 ) === ''0'' )
myString = myString.slice( 1 );
Si al principio puede haber varios 0
caracteres, puede cambiar if()
por un while()
.
Ejemplo: http://jsfiddle.net/kCpNQ/1/
var myString = "0000String";
while( myString.charAt( 0 ) === ''0'' )
myString = myString.slice( 1 );
//---- remove first and last char of str
str = str.substring(1,((keyw.length)-1));
//---- remove only first char
str = str.substring(1,(keyw.length));
//---- remove only last char
str = str.substring(0,(keyw.length));
var s = "0000test";
while(s.charAt(0) === ''0'')
{
s = s.substr(1);
}
Esto matará cualquier 0 al comienzo de la cadena.
var s = "0test";
if(s.substr(0,1) == "0") {
s = s.substr(1);
}
Para todos los 0
s: http://jsfiddle.net/An4MY/
String.prototype.ltrim0 = function() {
return this.replace(/^[0]+/,"");
}
var s = "0000test".ltrim0();
var test = ''0test'';
test = test.replace(/0(.*)/, ''$1'');