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

IT技术 javascript string
2021-03-14 22:29:27

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

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

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

6个回答

您可以使用以下方法删除字符串的第一个字符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);
}
@MiguelCoder。根据规范,步骤是相同的​​(当然,浏览器实现可能不同)。如果你不相信我,请阅读它。
2021-04-17 22:29:27
@Hejner:如果类型是相同的,因为他们总是会在这种情况下,然后=====执行完全相同的步骤(根据规范,至少),所以没有理由去期待一个比其他更好的执行.
2021-04-29 22:29:27
虽然仍然有效,但您应该更新您的回复,将其替换substrsubstring检查 MDN:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
2021-04-29 22:29:27
@Stephen:在这种情况下,它不会有什么不同,因为它charAt总是返回一个字符串,即使索引超过最后一个字符的索引,所以没有执行类型强制,算法最终是相同的。但我确实更喜欢=====即使它没有什么区别。;)
2021-05-10 22:29:27
@ReallyNiceCode 撇开这个问题是在 8 年前提出的事实。据说“0可以多次出现”。提问者接受了我的解决方案。
2021-05-10 22:29:27

非常易读的代码是将.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.substring(1);
//yourString now contains "test"

.slice()对比.substring()对比.substr()

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

引用自(以及更多内容)String.slice 和 String.substring 之间的区别是什么?

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

使用.charAt().slice()

示例: http : //jsfiddle.net/kCpNQ/

var myString = "0String";

if( myString.charAt( 0 ) === '0' )
    myString = myString.slice( 1 );

如果0开头可能有多个字符,则可以将 the 更改if()为 a while()

示例: http : //jsfiddle.net/kCpNQ/1/

var myString = "0000String";

while( myString.charAt( 0 ) === '0' )
    myString = myString.slice( 1 );

去除所有前导0s的最简单方法是:

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

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

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

您可以使用substring方法来做到这一点

let a = "My test string";

a = a.substring(1);

console.log(a); // y test string
其它你可能感兴趣的问题