javascript或php函数在文本的开头和结尾添加内容

时间:2015-07-19 04:11:26

标签: javascript php html

我一直在寻找能够将<td>添加到文本开头,然后在文本末尾添加</td>的内容

任何人都可以帮忙解决这个问题,或者指出一些我可以找到解决方法的地方

例如,如果用户放置这样的文本

item    2,119   1,403   233.090 1,741,670   110 821

我需要页面自动将<td>添加到文本的开头和结尾

<td>item</td><td>2,119</td><td>1,403</td><td>233.090</td><td>1,741,670</td><td>110</td><td>821</td>

编辑: -

现在我还有另外一个问题,如果用户放置了多行文本并希望它出现在列表中,我就会忘记。

        Names   1   2   3   4   5
ItemA   2,119   1,403   233.090 1,741,670   110 821
ItemB   957 370 250,734 757,278 262 791
itemC   16  13  0   18,811  0   1,175
ItemD   630 281 347,956 1,260,205   552 2,000

所以我需要它来做这个

<tr><td>ItemA</td>  <td>2,119</td>  <td>1,403</td>  <td>233.090</td>    <td>1,741,670</td>  <td>110 821</td></tr>
<tr><td>ItemB</td>  <td>957 <td>370 <td>250,734 <td>757,278</td>    <td>262 <td>791</td></tr>
<tr><td>itemC</td>  <td>16</td> <td>13</td> <td>0</td>  <td>18,811</td> <td>0   <td>1,175</td></tr>
<tr><td>ItemD</td>  <td>630</td>    <td>281</td>    <td>347,956</td>    <td>1,260,205</td>  <td>552 2,000</td></tr>

因此,在每一行的开头和每一行的结尾处,我需要一个<tr></tr>,因此在我的网页上会出现在列表中

4 个答案:

答案 0 :(得分:1)

这应该(在javascript中)

output = '<td>' + input.trim().replace(/\s+/g, '</td><td>') + '</td>';

trim()用于删除输入中的前导/尾随空格,只是为了确保

答案 1 :(得分:1)

这是一个PHP解决方案。在空格上使用explode()array_filter()会从数组中删除空值,然后再次implode()

<?php
$vals   =   "item    2,119   1,403   233.090 1,741,670   110 821";
echo '<td>'.implode("</td><td>",array_filter(explode(" ",$vals))).'</td>';
?>

答案 2 :(得分:0)

var result=$("<td></td>");
result.html( inputString.split(" ").join("</td><td>"));

答案 3 :(得分:0)

您可以按空格分隔字符串或用户输入(分隔符)

PHP 函数将字符串和分隔符字符称为空格''

<?php
    function splitStr($str, $seperator) {
        $ret = "";
        $strArr = explode($seperator, $str);
        for($i=0; $i<count($strArr); ++$i) {
            $ret .= '<td>' . $strArr[$i] . '</td>';
        }
        return $ret;
    }
    // invoke splitStr
    echo splitStr('item    2,119   1,403   233.090 1,741,670   110 821',' ');
?>

JavaScript 功能相同的php功能

function splitStr(str, seperator) {
    var ret = '';
    var strArr = str.split(seperator);
    for(var i=0; i<strArr.length; ++i) {
        ret += '<td>' + strArr[i] +. '</td>';
    }
        return ret;
}
alert(splitStr('item    2,119   1,403   233.090 1,741,670   110 821',' '));