在Javascript中删除一个string的第一个字符
如果第一个字符是0,我想删除一个string的第一个字符。0可以在那里不止一次。
是否有一个简单的函数,检查第一个字符,如果它是0删除它?
现在,我正在用JS slice()函数尝试它,但它非常尴尬。 
 var s = "0000test"; while(s.charAt(0) === '0') { s = s.substr(1); } 
这将杀死string开头的任何0。
 使用.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的最简单的方法是: 
 var s = "00test"; s = s.replace(/^0+/, ""); 
 如果只是剥离一个前导0字符,正如问题所暗示的那样,您可以使用 
 s = s.replace(/^0/, ""); 
 非常可读的代码是使用.substring()开始设置为第二个字符(1)的索引(第一个字符的索引为0)。  .substring()方法的第二个参数实际上是可选的,所以你甚至不需要调用.length() … 
TL; DR:删除string中的第一个字符:
 str = str.substring(1); 
是的,这是简单的…
删除一些特定的字符:
正如@Shadedbuild议,只是循环此string的第一个字符是“不需要的”字符…
 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() 
引用(和更多的) 在String.slice和String.substring有什么区别?
他还指出,如果要切片的参数是负数,则从末尾引用string。 子串和substr不是。
 你有没有尝试substringfunction? 
 string = string.indexOf(0) == '0' ? string.substring(1) : string; 
这里有一个参考 – https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substring
而且你可以一直这样做多个0:
 while(string.indexOf(0) == '0') { string = string.substring(1); } 
 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(); 
 这是一个不假设input是string ,使用substring ,并带有几个unit testing: 
 var cutOutZero = function(value) { if (value.length && value.length > 0 && value[0] === '0') { return value.substring(1); } return value; }; 
 //---- 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)); 
这可能有点矫枉过正,但嘿,我很无聊。
 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(.*)/, '$1'); 
从trim()>的Javascript实现,从string中删除和引导或结束空格。 这是这个问题的答案改变的实现。
 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,''); } }