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

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

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


当前回答

另一种方法是在删除后获取第一个字符:

// Example string
let string = 'Example';

// Getting the first character and updtated string
[character, string] = [string[0], string.substr(1)];

console.log(character);
// 'E'

console.log(string);
// 'xample'

其他回答

非常易读的代码是使用.substring(),开始设置为第二个字符的索引(1)(第一个字符的索引为0)。substring()方法的第二个参数实际上是可选的,所以你甚至不需要调用.length()…

从字符串中删除第一个字符:

str = str.substring(1);

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

删除一些特定的字符:

正如@ shade所建议的,当字符串的第一个字符是“不需要的”字符时,就循环这个…

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 .substring() vs .substr()

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

引用自(和更多关于)什么是字符串之间的区别。slice和String.substring?

他还指出,如果切片的参数是负的,他们 从末尾引用字符串。Substring和substr没有。

var test = '0test';
test = test.replace(/0(.*)/, '$1');

你可以使用substring删除字符串的第一个字符:

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

String.prototype.trimStartWhile =函数(谓词){ If (typeof predicate !== "function") { 返回; } 让len = this.length; If (len == 0) { 返回; } 设s =这个,I = 0; While (i < len && predicate(s[i])) { 我+ +; } 返回s.substr(我) } 让str = "0000000000ABC", r = str.trimStartWhile(c => c === '0'); console.log (r);

一个简单的解决方案是使用Javascript slice()方法,并将1作为参数传递

设 str = “khattak01” let resStr = str.slice(1) console.log(resStr)

结果:hattak01