比如有字符串 a = "8px";
数字的位数不一定,想截取出数字,想的是a.substring(0,a.indexOf("p")),本来想用a.substring(0,-2);但是一查才知道substring参数不能为负数,但是觉得a.substring(0,a.indexOf("p"))有点麻烦,请问有更直接的优化方法吗?
比如有字符串 a = "8px";
数字的位数不一定,想截取出数字,想的是a.substring(0,a.indexOf("p")),本来想用a.substring(0,-2);但是一查才知道substring参数不能为负数,但是觉得a.substring(0,a.indexOf("p"))有点麻烦,请问有更直接的优化方法吗?
第一种可以用substring方法:a.substring(0,a.length-2)
第二种可以用正则表达式:var a='8px';a.replace(/px$/ig,'')
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]
}
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
var a="88px";
如果格式一致,前面部分都是数字且只需要提取数字可以用:
parseInt(a);//88