在Javascript中删除字符串的第一个字符

Jin*_*ngs 430 javascript string

如果第一个字符是0,我想删除字符串的第一个字符.0可以不止一次.

是否有一个简单的函数检查第一个字符并删除它是否为0?

现在,我正在尝试使用JS slice()函数,但它非常尴尬.

Sha*_*ded 636

var s1 = "foobar";
var s2 = s1.substr(1);
alert(s2); // shows "oobar"
Run Code Online (Sandbox Code Playgroud)

这会杀死字符串开头的任何0.

  • @Stephen:在这种情况下,它没有什么区别,因为`charAt`总是返回一个字符串,即使索引超过了最后一个字符的索引,所以没有执行类型强制,并且算法最终是相同的.但我确实更喜欢`===`而不是`==`,即使它没有什么区别.;) (11认同)
  • 尽管仍然有效,但您应该更新您的回复,将“substr”替换为“substring”。检查MDN:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr (8认同)
  • @Hejner:如果类型相同,就像它们在这种情况下一样,那么`===`和`==`执行完全相同的步骤(至少根据规范),所以没有理由期望一个人比另一个人表现更好. (4认同)
  • @MiguelCoder.根据规范,步骤是相同的​​(当然,浏览器实现可能不同).如果你不相信我,请阅读它. (2认同)
  • @ReallyNiceCode抛开了8年前问这个问题的事实。有人说“ 0可以不止一次。” 询问者接受了我的解决方案。 (2认同)

jav*_*web 170

非常易读的代码用于.substring()将起始集设置为第二个字符的索引(1)(第一个字符具有索引0).该.substring()方法的第二个参数实际上是可选的,因此您甚至不需要调用.length()...

TL; DR:从字符串中删除第一个字符:

str = str.substring(1);
Run Code Online (Sandbox Code Playgroud)

......是的就是这么简单......

删除某些特定字符:

正如@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"
Run Code Online (Sandbox Code Playgroud)

.slice()vs .substring()vs.substr()

引用自(以及更多内容)String.slice和String.substring之间有什么区别?

他还指出,如果要切片的参数为负数,它们会从末尾引用该字符串.子串和子串不.


use*_*716 79

使用.charAt().slice().

示例: http ://jsfiddle.net/kCpNQ/

var myString = "0String";

if( myString.charAt( 0 ) === '0' )
    myString = myString.slice( 1 );
Run Code Online (Sandbox Code Playgroud)

如果0开头可能有多个字符,您可以将其更改if()为a while().

示例: http ://jsfiddle.net/kCpNQ/1/

var myString = "0000String";

while( myString.charAt( 0 ) === '0' )
    myString = myString.slice( 1 );
Run Code Online (Sandbox Code Playgroud)


Tim*_*own 57

剥离所有领先者0的最简单方法是:

var s = "00test";
s = s.replace(/^0+/, "");
Run Code Online (Sandbox Code Playgroud)

如果只是剥离一个0主角,就像问题所暗示的那样,你可以使用

s = s.replace(/^0/, "");
Run Code Online (Sandbox Code Playgroud)


小智 23

一种简单的解决方案是使用 Javascriptslice()方法,并传递 1 作为参数

let str = "khattak01"
let resStr = str.slice(1)
console.log(resStr)
Run Code Online (Sandbox Code Playgroud)

结果:hattak01


And*_*rew 22

关于什么

let a = "My test string";

a = a.substring(1);

console.log(a); // y test string
Run Code Online (Sandbox Code Playgroud)


ada*_*shr 16

你试过这个substring功能吗?

string = string.indexOf(0) == '0' ? string.substring(1) : string;
Run Code Online (Sandbox Code Playgroud)

这是一个参考 - https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substring

你总是可以为多个0做这个:

while(string.indexOf(0) == '0')
{
    string = string.substring(1);
}
Run Code Online (Sandbox Code Playgroud)


小智 11

const string = '0My string';
const result = string.substring(1);
console.log(result);
Run Code Online (Sandbox Code Playgroud)

您可以使用substring()JavaScript 函数。


zsa*_*ank 7

var s = "0test";
if(s.substr(0,1) == "0") {
    s = s.substr(1);
}
Run Code Online (Sandbox Code Playgroud)

对于所有人0:http://jsfiddle.net/An4MY/

String.prototype.ltrim0 = function() {
 return this.replace(/^[0]+/,"");
}
var s = "0000test".ltrim0();
Run Code Online (Sandbox Code Playgroud)


小智 6

//---- 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));
Run Code Online (Sandbox Code Playgroud)