我有一个字符串12345.00,我希望它返回12345.0。
我看了一下trim,但它看起来只是在修剪空白和切片,我不知道这是如何工作的。有什么建议吗?
我有一个字符串12345.00,我希望它返回12345.0。
我看了一下trim,但它看起来只是在修剪空白和切片,我不知道这是如何工作的。有什么建议吗?
当前回答
通过切片(indexStart,indexEnd)方法-注意,这不会更改现有字符串,而是创建一个副本并更改副本。
console.clear();
let str = "12345.00";
let a = str.slice(0, str.length -1)
console.log(a, "<= a");
console.log(str, "<= str is NOT changed");
通过正则表达式方法-注意,这不会更改现有字符串,而是创建一个副本并更改副本。
console.clear();
let regExp = /.$/g
let b = str.replace(regExp,"")
console.log(b, "<= b");
console.log(str, "<= str is NOT changed");
通过array.splice()方法->这只适用于数组,它会改变现有的数组(所以要小心这个),您需要先将字符串转换为数组,然后再转换回来。
console.clear();
let str = "12345.00";
let strToArray = str.split("")
console.log(strToArray, "<= strToArray");
let spliceMethod = strToArray.splice(str.length-1, 1)
str = strToArray.join("")
console.log(str, "<= str is changed now");
其他回答
使用正则表达式:
设aStr=“12345.00”;aStr=aStr替换(/.$/,'');控制台日志(aStr);
怎么样:
让myString=“12345.00”;console.log(myString.substring(0,myString.length-1));
debris = string.split("_") //explode string into array of strings indexed by "_"
debris.pop(); //pop last element off the array (which you didn't want)
result = debris.join("_"); //fuse the remainng items together like the sun
@杰森S:你可以用切片!你只需要确保你知道如何使用它。正数与开始,负数是相对于末端。js>“12345.00”.切片(0,-1)12345
对不起,我的写手,但帖子早些时候被标记为“jquery”。因此,不能在jQuery中使用slice(),因为slice(()是jQuery方法,用于使用DOM元素的操作,而不是子字符串。。。换言之,回答@Jon Erickson提出了非常完美的解决方案。
然而,您的方法将在简单的Javascript中使用jQuery函数。需要指出的是,由于上次在评论中的讨论,jQuery是JS的可更新扩展,而不是他自己的父级最著名的ECMAScript。
这里还存在两种方法:
作为我们的:
string。substring(from,to)as plus if“to”index null返回字符串的其余部分。因此:string.substring(from)正或负。。。
而其他一些-substr()-提供子字符串的范围,“length”只能为正:string.substr(开始,长度)
还有一些维护人员建议,最后一个方法string.substr(start,length)不起作用,或者对MSIE有错误。
https://stackoverflow.com/questions/34817546/javascript-how-to-delete-last-two-characters-in-a-string
如果不需要空间,只需使用修剪
"11.01 °C".slice(0,-2).trim()