如果第一个字符为0,我想删除字符串的第一个字符.0可以不止一次。
是否有一个简单的函数检查第一个字符并删除它是否为0?
现在,我正在尝试使用JS slice()
函数,但它非常尴尬。
答案 0 :(得分:532)
var s = "0000test";
while(s.charAt(0) === '0')
{
s = s.substr(1);
}
这会杀死字符串开头的任何0。
答案 1 :(得分:138)
非常易读的代码是使用.substring()
,并将起始集设置为第二个字符的索引(1)(第一个字符的索引为0)。 .substring()
方法的第二个参数实际上是可选的,因此您甚至不需要调用.length()
...
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)
示例: 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;
};
答案 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 函数。