搜索

首页  >  问答  >  正文

javascript - 关于字符串的截取

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

ringa_leeringa_lee2803 天前655

全部回复(8)我来回复

  • 漂亮男人

    漂亮男人2017-05-19 10:13:49

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

    回复
    0
  • 仅有的幸福

    仅有的幸福2017-05-19 10:13:49

    用正则

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

    回复
    0
  • 天蓬老师

    天蓬老师2017-05-19 10:13:49

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

    回复
    0
  • 滿天的星座

    滿天的星座2017-05-19 10:13:49

    雷雷

    回复
    0
  • 大家讲道理

    大家讲道理2017-05-19 10:13:49

    parseInt、parseFloat、切片、正则表达式

    回复
    0
  • PHP中文网

    PHP中文网2017-05-19 10:13:49

    雷雷

    回复
    0
  • 巴扎黑

    巴扎黑2017-05-19 10:13:49

    用正则最方便

    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]
    }

    回复
    0
  • 黄舟

    黄舟2017-05-19 10:13:49

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

    回复
    0
  • 取消回复