Javascript 如何删除";px“;从245px开始
删除字符串最后两个字符的简单方法是什么?要在245中转换Javascript 如何删除";px“;从245px开始,javascript,string,variables,erase,Javascript,String,Variables,Erase,删除字符串最后两个字符的简单方法是什么?要在245中转换245px,只需运行: parseInt('245px', 10); 它只保留前导数字,并丢弃所有剩余的。这正是您要求的:删除字符串的最后两个字符: s.substr(0, s.length-2); 检查 在你的情况下 string.substr(0, string.length - 2) 使用 其中10是基数定义的parseInt正在解析为一个十进制值 使用parseInt,但不要在没有 函数的作用是:解析字符串并返回整数 签名是p
245px
,只需运行:
parseInt('245px', 10);
它只保留前导数字,并丢弃所有剩余的。这正是您要求的:删除字符串的最后两个字符:
s.substr(0, s.length-2);
检查
在你的情况下
string.substr(0, string.length - 2)
使用
其中10是基数定义的parseInt正在解析为一个十进制值
使用parseInt,但不要在没有
函数的作用是:解析字符串并返回整数
签名是parseInt(字符串,基数)
第二个参数强制parseInt使用以十为基数的编号系统
- ParseInt()的默认输入类型为十进制(以10为基数)
- 如果数字以“0”开头,则假定为八进制(以8为基数)
- 如果以“0x”开头,则假定为十六进制
为什么??如果$(this).attr('num')为“08”,则不带基数的parsInt将变为0,以转换末尾不带“px”的像素值。使用parseFloat
parseFloat('245px'); // returns 245
注意:如果使用parseInt,则如果该值是整数,则该值将是正确的。如果该值是一个类似245.50px的十进制值,则该值将四舍五入为245。令人惊讶的是,子字符串方法
s.substr(0,s.length-2)实际上,code>删除px
的速度要快得多(是的,它看起来不那么干净,如果有空间,它将保留--“250px”->“250”
而不是“250 px”->“250”
)
如果您想考虑空格(您可能应该这样做),那么使用.trim()
函数实际上会降低substr
测试的速度,从而使parseInt
方法变得更加优越
使用parseInt(s,10)
的另一个好处是,您还可以获得类型转换,并可以立即开始将其应用于数学函数
因此,最终,这真的取决于你计划如何处理结果
- 如果仅显示,则使用
substr
方法而不进行修剪可能是最佳选择
- 如果您只是想看看不带px的值是否与另一个值相同
s.substr(0,s.length-2)==0
,那么使用substr
方法将是最好的,因为“250”==250
(即使有空格)将导致true
<> LI>如果你想说明一个空间的可能性,将它添加到另一个值,或者用它来计算某个值,那么你可能需要考虑使用<代码> PARSETIN < /Cord>路由> 。
jspref上的测试占用了一个空间。我还尝试了一个s.split('px')[0]
和s.replace(/*px/g')
函数,发现两者都比较慢
请随意添加其他测试用例。我更喜欢:
“245px”。替换(/px/,'')*1
因为它不是围绕输入的
另外,*1
用于将其强制转换为int。虽然parseInt()是一个不错的选择,但拥有许多其他解决方案仍然很好
var pixels = '245px';
Number(pixels.replace('px', ''));
substr()
is;改用:(语法与本例相同)
或使用:
slice()
看起来干净多了,依我看。负值从末尾开始倒数。这是最灵活的方法,但您应该始终指定基数parseInt('245px',10)
您是对的:当字符串以'0'开头时,(奇怪的)默认值是八进制。。。有多少次我在parseInt('09')
中遇到错误!当值类似于35.5px时,您会怎么做..使用parseInt将导致35only@MuhammadUmer:您可以使用'parseFloat'(),因为我的精度编辑被拒绝,我将把它放在注释中,parseFloat()
不像parseInt(),因为它不能用于rem
值。
var pixels = '245px';
Number(pixels.replace('px', ''));
str.substring(0, str.length-2);
str.slice(0, -2);