如果字符串的第一个字符为 0,则将其删除TL;DR : 从字符串中删除第一个字符:

2022-08-29 22:30:23

我想删除字符串的第一个字符,如果第一个字符是0。0 可以存在多次。

有没有一个简单的函数来检查第一个字符,如果它是0,则将其删除?

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


答案 1

您可以使用子字符串删除字符串的第一个字符:

var s1 = "foobar";
var s2 = s1.substring(1);
alert(s2); // shows "oobar"

删除字符串开头的所有 0:

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

答案 2

非常可读的代码是使用 .substring() 并将 start 设置为第二个字符 (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.substring(1);
//yourString now contains "test"

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

编辑:substr()不是标准化的,不应该用于新的JS代码,你可能倾向于使用它,因为命名与其他语言相似,例如.PHP,但即使在PHP中,你也应该使用mb_substr()在现代世界中是安全的:)

引用(以及更多关于此的内容)String.slice和String.substring之间的区别是什么?

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