删除字符串的第一个字符,如果它是0

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

有没有一个简单的函数可以检查第一个字符并删除它,如果它是0?

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

958522 次浏览

您是否尝试过substring功能?

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

对于所有#EYZ:http://jsfiddle.net/An4MY/

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

使用.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 );

String.prototype.trimStartWhile = function(predicate) {
if (typeof predicate !== "function") {
return this;
}
let len = this.length;
if (len === 0) {
return this;
}
let s = this, i = 0;
while (i < len && predicate(s[i])) {
i++;
}
return s.substr(i)
}


let str = "0000000000ABC",
r = str.trimStartWhile(c => c === '0');
    

console.log(r);

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,使用substring,并附带几个单元测试:

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


return value;
};

剥离所有前导#EYZ的最简单方法是:

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

如果只是剥离一个前导0字符,正如问题所暗示的那样,您可以使用

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

从trim()>的Javascript实现中删除字符串中的前导或结尾空格。这是这个问题答案的修改实现。

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

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

太长别读:从字符串中删除第一个字符:

str = str.substring(1);

…是的,就是这么简单…

删除一些特定的字符(S):

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

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

引用(以及更多关于)String.slice和String.substring?有什么区别

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

您可以使用子串方法执行此操作:

let a = "My test string";


a = a.substring(1);


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

尝试

s.replace(/^0/,'')

console.log("0string  =>", "0string".replace(/^0/,'') );
console.log("00string =>", "00string".replace(/^0/,'') );
console.log("string00 =>", "string00".replace(/^0/,'') );

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

// 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'


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

let str = "khattak01"
let resStr = str.slice(1)
console.log(resStr)

结果:hattak01

const string = '0My string';
const result = string.substring(1);
console.log(result);

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