Удалить первый символ строки в JavaScript



Я хочу, чтобы удалить первый символ строки, если первый символ равен 0. На 0 может быть там более одного раза.



есть простая функция, которая проверяет первый символ и удаляет его, если он равен 0?



прямо сейчас, я пытаюсь его с JS но это очень неудобно.

646   12  

12 ответов:

var s = "0000test";
while(s.charAt(0) === '0')
{
 s = s.substr(1);
}

это убьет любые 0 в начале строки.

очень читаемый код использовать .substring() с начальным значением индекса второго символа (1) (Первый символ имеет индекс 0). Второй параметр .substring() метод на самом деле не является обязательным, так что вам даже не нужно вызывать .length()...

TL; DR: удалить первый символ из строки:

str = str.substring(1);

...да, это так просто...

удаление некоторых конкретных символов:

как предложил @Shaded, просто зациклите это время первый символ вашей строки-это "нежелательный" символ...

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()

цитата из (и на что) в чем разница между строкой.кусочек и строка.подстрока?

он также указывает, что если параметры для среза отрицательны, они ссылка на строку с конца. Подстрока и substr не делает.

использовать .charAt() и .slice().

пример:http://jsfiddle.net/kCpNQ/

var myString = "0String";

if( myString.charAt( 0 ) === '0' )
    myString = myString.slice( 1 );

если бы их было несколько 0 символы в начале, вы можете изменить if() до while().

пример:http://jsfiddle.net/kCpNQ/1/

var myString = "0000String";

while( myString.charAt( 0 ) === '0' )
    myString = myString.slice( 1 );

самый простой способ лишить всех ведущих 0 s это:

var s = "00test";
s = s.replace(/^0+/, "");

если только зачистка одного ведущего 0 характер, как следует из вопроса, Вы могли бы использовать

s = s.replace(/^0/, "");

вы пробовали

var s = "0test";
if(s.substr(0,1) == "0") {
    s = s.substr(1);
}

для всех 0 s:http://jsfiddle.net/An4MY/

String.prototype.ltrim0 = function() {
 return this.replace(/^[0]+/,"");
}
var s = "0000test".ltrim0();
//---- 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));

как о

let a = "My test string";

a = a.substring(1, a.length);

console.log(a); // y test string

вот тот, который не предполагает, что вход является string, используется substring, и поставляется с несколькими модульными тестами:

var cutOutZero = function(value) {
    if (value.length && value.length > 0 && value[0] === '0') {
        return value.substring(1);
    }

    return value;
};

http://jsfiddle.net/TRU66/1/

Это может быть немного перебор, но мне было скучно.

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'; 
});

эта версия может быть хоть вы.

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'; 
});
var test = '0test';
test = test.replace(/0(.*)/, '');

из реализации Javascript trim ()>, которая удаляет и начальные или конечные пробелы из строк. Вот измененная реализация ответа на этот вопрос.

var str = "0000one two three0000"; //TEST  
str = str.replace(/^\s+|\s+$/g,'0'); //ANSWER

оригинальная реализация для этого на JS

string.trim():
if (!String.prototype.trim) {
 String.prototype.trim = function() {
  return this.replace(/^\s+|\s+$/g,'');
 }
}

Comments

    Ничего не найдено.