如何用点替换逗号

时间:2016-05-10 10:54:42

标签: html arrays json

我在我的json中有逗号值,我希望当我得到这些值时我得到它们在dot中所以基本上我想将我的逗号值转换为点值...我的json看起来像它总是固定我会得到val003上的逗号值。 我知道要做的事情,比如var new = new.replace(/,/ g,'。')。但是我如何在这里指定我的val003进行转换。提前谢谢

我的HTML

<!doctype html>

<html>

<head>

    <meta charset="UTF-8">
    <meta content="utf-8" http-equiv="encoding">
      <div id="below">
        <div id="chart"></div>
    </div>
    <script>
        var jsonURL = 'avb.json';
        var myData = [];
        var fliterdata = [];
        var tempdata = [];
        var selectop = "";
        var selectDate = false;
        var chartType = chartType || 'bar';

        function filterJSON(json, key, value) {
            var result = [];
            for (var foo in json) {
                var extractstr = json[foo][key] ;
                extractstr=String(extractstr);

                if (extractstr.slice(3)== value) {

                    result.push(json[foo]);

               }
            }
            return result;
        }
        function selectValue(d) {    
            switch (selectop) { //d object select particular value for Y axis
                case "01":
                    return d.val001;
                    break;
                case "02":
                    return d.val002;
                    break;
                case "03":
                    return d.val003;
                    break;
                case "04":
                    return d.val004;
                    break;
               default:
                    //console.log("default");
                    return d.val001;
            }


        }

      var line = d3.svg.line()
                .x(function(d) {
                    return xScale(d.date);
                })
                .y(function(d) {
                    return yScale(selectValue(d));
                })
                .interpolate("monotone")
                .tension(0.9);




            yScale.domain([0, d3.max(tempData, function(d) {
                return +selectValue(d);
            })]);

            var svg = d3.select('#chart').append('svg')
                    .attr("width", width + margin.left + margin.right)
                    .attr("height", height + margin.top + margin.bottom)
                    .append("g")
                    .attr("transform", "translate(" + margin.left + "," + margin.top + ")");


            if (chartType == 'bar') {
                svg
                        .selectAll(".bar") //makes bar
                        .data(tempData)
                        .enter().append("rect")
                        .attr("class", "bar")
                        .style("fill", "teal")
                        .attr("x", function(d) {
                            return xScale(d.date);
                        }).attr("width", xScale.rangeBand())
                        .attr("y", function(d) {


                            return yScale(selectValue(d));
                        }).attr("height", function(d) {

                    console.log("as", d.value);
                    return height - yScale(selectValue(d));
                })
            }

            if (chartType == 'line') {
                svg.append("path") // Add the line path.
                        .data(tempData)
                        .attr("class", "line")
                        .attr("d", line(tempData));
            }

        }
        d3.json(jsonURL, function(data) {

            myData = data; //data from json in mydata
           d.val003.replace(",",".")
            myData.forEach(function(d) {

                d.date = new Date(d.date);
                d.date = new Date(d.date + " UTC");

            });

            $("#listbox").on("click", function() {

                var key = $(this).val();
                console.log("key:", key);
                var value = $('#listbox option:selected').text();
                console.log("vaue:", value);

                selectop = String(key);

                selectop = selectop.slice(-2);
                console.log("mydata: ", myData);
                console.log("selectops:", selectop);

                fliterdata = filterJSON(myData, key, value); //selected value from user and picks the whole element that contains that attribute

                console.log("fliterdata: ", fliterdata);
                tempData = fliterdata; //graph made by temp data
                if (selectDate)
                    render(true);
            });
        });

        function selectChartType(type) {
            chartType = type;
            render(true);
        }
    </script>
    </body>
</div>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

试试这个,

return d.val003.toString().replace(",",".");

答案 1 :(得分:1)

Yo可以简单地在JSon对象中请求一个值 - 它几乎可以作为JavaScript中的对象。

所以,如果你有你的JSon对象,我们可以简单地调用json:

var url = *your url*, json;

// retrieve the json object from a URL
$.getJSON(url, function (response) {$
    json = response;
});

// reassing val003 with the corrected string
json.val003 = json.val003.replace(",", ".")

这应该有用,我相信。

答案 2 :(得分:1)

如果它总是以你想要替换的十进制数字的逗号,那么你可以在整个json字符串中进行搜索替换序列&#34; number&#34; &#34;逗号&#34; &#34;数&#34;像:

([0-9]),([0-9])

并将其替换为:

$1.$2

$ 1和$ 2是逗号前后找到的数字的占位符。 您可以使用此站点进行在线测试: http://www.regexe.com/