我有一个字符串12345.00,我希望它返回12345.0。
我看了一下trim,但它看起来只是在修剪空白和切片,我不知道这是如何工作的。有什么建议吗?
我有一个字符串12345.00,我希望它返回12345.0。
我看了一下trim,但它看起来只是在修剪空白和切片,我不知道这是如何工作的。有什么建议吗?
当前回答
试试看:
<script>
var x="foo_foo_foo_bar";
for (var i=0; i<=x.length; i++) {
if (x[i]=="_" && x[i+1]=="b") {
break;
}
else {
document.write(x[i]);
}
}
</script>
您也可以在http://jsfiddle.net/informativejavascript/F7WTn/87/.
其他回答
您可以使用JavaScript字符串对象的substring方法:
s = s.substring(0, s.length - 4)
它无条件地从字符串s中删除最后四个字符。
但是,如果要有条件地删除最后四个字符,则仅当它们完全是_bar时:
var re = /_bar$/;
s.replace(re, "");
表演
今天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短字符串的示例结果
你可以用切片!你只需要确保你知道如何使用它。正数是相对于开头的,负数是相对于结尾的。
js>"12345.00".slice(0,-1)
12345.0
使用子字符串获取_bar左侧的所有内容。但首先必须在字符串中获取_bar的instr:
str.substring(3, 7);
3是起点,7是长度。
https://stackoverflow.com/questions/34817546/javascript-how-to-delete-last-two-characters-in-a-string
如果不需要空间,只需使用修剪
"11.01 °C".slice(0,-2).trim()