比如有字符串 a = "8px";数字的位数不一定,想截取出数字,想的是a.substring(0,a.indexOf("p")),本来想用a.substring(0,-2);但是一查才知道substring参数不能为负数,但是觉得a.substring(0,a.indexOf("p"))有点麻烦,请问有更直接的优化方法吗?
ringa_lee
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,'')
雷雷
parseInt、parseFloat、切片、正则表达式
用正则最方便
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
var a="88px";
如果格式一致,前面部分都是数字且只需要提取数字可以用:
parseInt(a);//88
用正则
第一种可以用substring方法:a.substring(0,a.length-2)
第二种可以用正则表达式:var a='8px';a.replace(/px$/ig,'')
雷雷
parseInt、parseFloat、切片、正则表达式
雷雷
用正则最方便
对你们无语了,难道不能用parseInt, parseFloat