搜尋

首頁  >  問答  >  主體

javascript - 關於字串的截取

例如有字串a = "8px";
數字的位數不一定,想截取出數字,想的是a.substring(0,a.indexOf("p")),本來想用a.substring(0,-2);但一查才知道substring參數不能為負數,但是覺得a.substring(0,a.indexOf("p"))有點麻煩,請問有更直接的最佳化方法嗎?

ringa_leeringa_lee2803 天前653

全部回覆(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、slice、regexp

    回覆
    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
  • 取消回覆