Javascript: вернуть две части строки ... - PullRequest
1 голос
/ 29 июля 2011

Вот быстрый для вас волшебников JavaScript там!

У меня есть такая строка

var something="a<b>pple</b>";

Можете ли вы разбить вышеперечисленное на части, чтобы я получил такой массив:

the_string[0] would contain "a"
the_string[1] would contain "pple"

в основном текст перед тегом и текст в теге. Тег всегда будет выделен жирным шрифтом и в этом точном формате.

Спасибо!

Ответы [ 4 ]

6 голосов
/ 29 июля 2011

"a<b>pple</b>".split(/<\/?b>/)

3 голосов
/ 29 июля 2011
var the_string = something.split(/<\/?b>/);

Пример: http://jsfiddle.net/2FNr8/

0 голосов
/ 29 июля 2011

Если вы не знаете, что это за элементы, вы можете использовать:

function getTextAsArray(text) {
  var div = document.createElement('div');
  div.innerHTML = text;

  function getText (element) {
    var text = [];
    var el, els = element.childNodes;

    for (var i=0, iLen=els.length; i<iLen; i++) {
      el = els[i];

      if (el.nodeType == 1) {
        text.push(getText(el));

      } else if (el.nodeType == 3) {
        text.push(el.data);
      }
    }
    return text;
  }
  return getText(div);
}

alert(getTextAsArray("a<b>pple</b>")); // a, pple
0 голосов
/ 29 июля 2011

Что делать, если вы хотите сохранить все, но разделить их так, чтобы у вас были теги:

the_string[0] would contain "a"
the_string[1] would contain "<b>"
the_string[2] would contain "pple"
the_string[3] would contain "</b>"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...