0

我被困在这里...

所以,我有一个字符串:

6,5,1,0,0,4,0,2,1121,18,54,67,6,0
15,5,10,0,6,5,1,3,20,47,119,153,15,0
187,72,115,2,8,19,37,121,74,98,511,622,143,44

我需要获取每行的第一个和最后一个数字并将它们放入表中(使用 JavaScript)。

结果我需要

<tr><td>6</td><td>0</td></tr>
<tr><td>15</td><td>0</td></tr>
<tr><td>187</td><td>44</td></tr>

任何帮助表示赞赏。甚至可能是一个提示:)

4

4 回答 4

1

你可以试试正则表达式

/^([0-9]+),[0-9,]+,([0-9]+)$/

会给你一个匹配的第一个和最后一个数字

于 2013-06-11T08:36:10.457 回答
0

您可以将多行字符串拆分为行

x = "a\nb\nc"
lines = x.split("\n")

遍历每一行并使用正则表达式查找第一个和最后一个数字。一种易于理解的方法是对第一个和最后一个使用单独的方法。

var first = line.match(/^\d+/)[0]
var last = line.match(/\d+$/)[0]

不过,Regexp 并不是必需的,您可以使用 .split(',')。

要制作表格,我建议使用 jQuery 并阅读 .append 或 google 的 jQuery 文档,以了解“如何使用 jquery 制作表格”之类的内容。

于 2013-06-11T08:39:21.273 回答
0

希望对你有帮助

<script type="text/javascript">
function Test()
{
  var stringValue = "6,5,1,0,0,4,0,2,1121,18,54,67,6,0";
  stringValue = BuildRow(stringValue);  //stringValue = <tr><td>6</td><td>0</td></tr>
  alert(stringValue);
}

//Build a table row from string
function BuildRow(sValue)
{
   var first = GetFirstNumberOfLine(sValue);
   var last = GetLastNumberOfLine(sValue);
   var row = "<tr><td>" + first + "</td><td>" + last +  "</td></tr>";
   return row;
}

//Return The first number of a string
function GetFirstNumberOfLine(sValue)
{
     var numberArray = sValue.split(",");
     return  numberArray[0];
}

//Return The first last number of a string
function GetLastNumberOfLine(sValue)
{
     var numberArray = sValue.split(",");
     return numberArray[numberArray.length -1 ];
}
</script>
于 2013-06-11T08:56:09.717 回答
0

我不会使用正则表达式来解决这个问题,而是使用String.split,然后做这样的事情。

HTML

<table id="results"></table>

Javascript

var table = document.getElementById("results"),
    strings = "6,5,1,0,0,4,0,2,1121,18,54,67,6,0\n15,5,10,0,6,5,1,3,20,47,119,153,15,0\n187,72,115,2,8,19,37,121,74,98,511,622,143,44".split("\n");

strings.forEach(function (string) {
    var tr = document.createElement("tr"),
        tdFirst = document.createElement("td"),
        tdLast = document.createElement("td"),
        array = string.split(",");

    tdFirst.textContent = array[0];
    tdLast.textContent = array[array.length - 1];

    tr.appendChild(tdFirst);
    tr.appendChild(tdLast);
    table.appendChild(tr);
});

jsfiddle 上

于 2013-06-11T09:17:51.910 回答