如何:替换命令

时间:2014-01-17 11:44:08

标签: javascript replace

任何人都可以告诉我如何保持逗号“,”和点“。”还有数字?
我试过在谷歌搜索但我没有发现任何我能理解的东西。

 string2 = string2.replace(/\D./g,'');


      var element1 = document.getElementById("content"),
        style1 = window.getComputedStyle(element1),
        height1 = style1.getPropertyValue('height');
        var string1 = height1;
        string1 = string1.replace(/\D/g,'');
        alert(string1);


      var element2 = document.getElementById("nav-menu"),
        style2 = window.getComputedStyle(element2),
        height2 = style2.getPropertyValue('height');
        var string2 = height2;
        string2 = string2.replace(/\D./g,'');
        alert(string2);


        var x = string1/string2;
        var z = 100/x

3 个答案:

答案 0 :(得分:0)

我真的不知道你想要实现什么,但点是正则表达式中的一个特殊字符,匹配任何单个字符。所以string2.replace(/\D./g,'')不会“保留逗号和点”,因为正则表达式匹配\ D加上下一个字符(无论它是什么)。如果只想匹配一个点,则必须将其转义或放入字符类中。

答案 1 :(得分:0)

如果我说得对 - 你试图从样式字符串中提取属性值。我会这样做:

var regex = /([\d\.\,]+)(\s)?[a-z\%]+/gi;
alert(regex.test("height: 38.5%;")[1]); // will show 38.5

或者

alert(regex.test("height: 38.5%;")[0]); // will show 38.5%, as the whole matched expression

<强>更新 考虑使用jQuery http://jquery.com/

答案 2 :(得分:0)

string2 = string2.replace(/ [^ \ d。] / g,“”);我只需要添加一个。之后\ D想象我不需要,任何方式,因为它使用31.31而不是31,31