javascript删除字符

时间:2011-11-17 14:22:24

标签: javascript string

我有

var content='<td> <table> <tr> <td> some_html_code </td> <td> another_html </td> </tr> </table> </td>'

如何在开始时移除<td>,最后移除</td>

4 个答案:

答案 0 :(得分:4)

尝试:

content.replace(/^<td>\s?(.+)\s?<\/td>$/, "$1")

编辑:或类似地:

content.replace(/^<td>/, "").replace(/<\/td>$/, "")

答案 1 :(得分:2)

假设你已经获得了所有字符串:

newcontent = content.substr(4,content.length-5);

是最简单的方法。如果你试图从更大的html(整个页面?)中获取它,那么我建议使用DOM操作。

答案 2 :(得分:1)

您可以简单地slice()获取字符串的一部分副本。

  var tmp_start_td = content.slice(5);

  var tmp_end_td = tmp_start_td.slice(0,-6);

  content = tmp_end_td; // result

答案 3 :(得分:1)

您可以使用XML解析器或DOM操作方法:

// Using DOM manipulation methods
var myEl = document.createElement("tr");
myEl.innerHTML = "<td>\n"+
                 "    <table>\n" +
                 "    <tr>\n" +
                 "        <td>\n" +
                 "            some_html_code\n" +
                 "        </td>\n" +
                 "        <td>\n" +
                 "            another_html\n" +
                 "        </td>\n" +
                 "    </tr>\n" +
                 "    </table>\n" +
                 "</td>";
var out = myEl.childNodes[0].innerHTML;

console.log(out);

使用上述DOM方法的一个好处是,它们可以更加宽容验证/格式错误......但是因此它们可能会在标记中添加<tbody>元素。

或者,您也可以使用不那么宽容的DOMParser

// using the DOMParser to parse XML
var content = "<td>\n"+
              "    <table>\n" +
              "    <tr>\n" +
              "        <td>\n" +
              "            some_html_code\n" +
              "        </td>\n" +
              "        <td>\n" +
              "            another_html\n" +
              "        </td>\n" +
              "    </tr>\n" +
              "    </table>\n" +
              "</td>";
var parser=new DOMParser();
var serializer = new XMLSerializer();
xmlDoc=parser.parseFromString(content,"text/xml");

var out = '';
var tdEl = xmlDoc.childNodes[0];
var count = tdEl.childNodes.length;
alert(count);
for(var i=0; i<count; i++) {
    out += serializer.serializeToString(tdEl.childNodes[i]);
}

console.log(out);