javascript - 关于字符串的截取
ringa_lee
ringa_lee 2017-05-19 10:11:49
[JavaScript讨论组]

比如有字符串 a = "8px";
数字的位数不一定,想截取出数字,想的是a.substring(0,a.indexOf("p")),本来想用a.substring(0,-2);但是一查才知道substring参数不能为负数,但是觉得a.substring(0,a.indexOf("p"))有点麻烦,请问有更直接的优化方法吗?

ringa_lee
ringa_lee

ringa_lee

全部回复(8)
漂亮男人

var a="88px";
如果格式一致,前面部分都是数字且只需要提取数字可以用:
parseInt(a);//88

仅有的幸福

用正则

console.log('8px'.match(/(\d+)/)[0])
天蓬老师

第一种可以用substring方法:a.substring(0,a.length-2)
第二种可以用正则表达式:var a='8px';a.replace(/px$/ig,'')

滿天的星座
var a = '8px';
a.slice(0,-2);
大家讲道理

parseInt,parseFloat,slice,regexp

PHP中文网
var str1 = "8px",
    str2 = "88px",
    str3 = "888px",
    str4 = "8.88px";
    
str1.replace(/(.*)px/, "$1"); //8
str2.replace(/(.*)px/, "$1"); //88
str3.replace(/(.*)px/, "$1"); //888
str4.replace(/(.*)px/, "$1"); //8.88
巴扎黑

用正则最方便

var reg = /([\d\.]+)px/; // 使用这个正则匹配
var arr = ['8px', '18px', '28px', '0.08px']
for (let i = 0, len = arr.length; i < len; i++) {
    console.log(arr[i], arr[i].match(reg)[1]);  // 结果arr[i].match(reg)[1]
}
黄舟

对你们无语了,难道不能用parseInt, parseFloat

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号