我有一个字符串12345.00,我希望它返回12345.0。

我看了一下trim,但它看起来只是在修剪空白和切片,我不知道这是如何工作的。有什么建议吗?


当前回答

使用JavaScript的切片函数:

let string='foo_bar';string=string.spice(0,-4);//在此处切下最后四个字符console.log(字符串);

这可以用于删除任何长度字符串末尾的“_bar”。

其他回答

您可以使用substring函数:

让str=“12345.00”;str=str.substring(0,str.length-1);console.log(str);

这是公认的答案,但根据下面的对话,切片语法更加清晰:

让str=“12345.00”;str=str.slice(0,-1);console.log(str);

表演

今天2020.05.13我在MacOs High Sierra v10.13.6上对Chrome v81.0、Safari v13.1和Firefox v76.0上选择的解决方案进行了测试。

结论

切片(0,-1)(D)是短字符串和长字符串的快速或最快解决方案,建议作为快速跨浏览器解决方案基于子字符串(C)和子字符串(E)的解决方案是快速的基于正则表达式(A,B)的解决方案是慢/中快的解决方案B、F和G对于长字符串来说很慢解决方案F对于短字符串最慢,对于长字符串最慢

细节

我对解决方案A、B、C、D、E(ext)、F、G(my)进行了两次测试

对于8个字符的短字符串(来自OP问题)-您可以在这里运行对于1M长的字符串-您可以在这里运行

解决方案在以下片段中介绍

函数A(str){return str.replace(/.$/,“”);}函数B(str){返回str.match(/(.*).$/)[1];}函数C(str){返回str.substring(0,str.length-1);}函数D(str){返回str.slice(0,-1);}函数E(str){返回str.substr(0,str.length-1);}函数F(str){设s=str.split(“”);s.pop();return s.join(“”);}函数G(str){让s=“”;对于(设i=0;i<str.length-1;i++)s+=str[i];返回s;}// ---------//测试// ---------let log=(f)=>console.log(`${f.name}:${f(“12345.00”)}`);[A,B,C,D,E,F,G].map(F=>log(F));此代码段仅显示源

以下是Chrome短字符串的示例结果

https://stackoverflow.com/questions/34817546/javascript-how-to-delete-last-two-characters-in-a-string

如果不需要空间,只需使用修剪

"11.01 °C".slice(0,-2).trim()

使用子字符串获取_bar左侧的所有内容。但首先必须在字符串中获取_bar的instr:

str.substring(3, 7);

3是起点,7是长度。

怎么样:

让myString=“12345.00”;console.log(myString.substring(0,myString.length-1));