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

时间:2010-12-30 16:39:01

标签: javascript string

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

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

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

16 个答案:

答案 0 :(得分:532)

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

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

答案 1 :(得分:138)

非常易读的代码是使用.substring(),并将起始集设置为第二个字符的索引(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.substr(1);
//yourString now contains "test"

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

引用来自(以及更多内容)What is the difference between String.slice and String.substring?

  

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

答案 2 :(得分:76)

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

答案 3 :(得分:54)

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

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

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

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

答案 4 :(得分:17)

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

let a = "My test string";

a = a.substring(1);

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

答案 5 :(得分:16)

您是否尝试过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);
}

答案 6 :(得分:6)

var s = "0test";
if(s.substr(0,1) == "0") {
    s = s.substr(1);
}

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

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

答案 7 :(得分: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));

答案 8 :(得分:3)

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

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

答案 9 :(得分:3)

这是一个不假设输入是string,使用substring,并附带几个单元测试的人:

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

    return value;
};

http://jsfiddle.net/TRU66/1/

答案 10 :(得分:2)

尝试

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

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

答案 11 :(得分:0)

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

答案 12 :(得分: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,'');
 }
}

答案 13 :(得分: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'

答案 14 :(得分:0)

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

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

结果:hattak01

答案 15 :(得分:0)

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

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