JavaScript удалить символы - PullRequest
0 голосов
/ 17 ноября 2011

у меня

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

Как убрать <td> в начале и </td> в конце?

Ответы [ 4 ]

4 голосов
/ 17 ноября 2011

Попробуйте:

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

Редактировать: или аналогично:

content.replace(/^<td>/, "").replace(/<\/td>$/, "")
2 голосов
/ 17 ноября 2011

Предполагая, что строка - это все, что у вас есть:

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

- самый простой метод. Если вы пытаетесь извлечь это из большого массива html (всей страницы?), Я бы предложил вместо этого использовать операции DOM.

1 голос
/ 17 ноября 2011

Вы можете использовать синтаксический анализатор 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);
1 голос
/ 17 ноября 2011

Вы можете просто slice() получить копию части строки.

  var tmp_start_td = content.slice(5);

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

  content = tmp_end_td; // result
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...