例如有字串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、slice、regexp
用正規最方便
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、slice、regexp
雷雷
用正規最方便
對你們無語了,難道不能用parseInt, parseFloat