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

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

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


当前回答

这里有一个不假设输入是字符串,使用子字符串,并附带了几个单元测试:

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

    return value;
};

http://jsfiddle.net/TRU66/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);

另一个答案

str.replace(/^0+/, '')

你试过子字符串函数吗?

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

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