javascript string parsing

textNode 과 tag 분리

Split string into words in javascript

  • 재귀는 안 됨
var text = 'A wonderful serenity has taken possession of my entire soul. <strong>This is a subheadline</strong><br><br>I am alone, and feel the charm of existence in this spot.'

var elem = document.createElement('div')
elem.innerHTML = text

var array = []

for (var i = 0, childs = elem.childNodes; i < childs.length; i++) {
    if (childs[i].nodeType === 3 /* document.TEXT_NODE */) {
        array = array.concat(childs[i].nodeValue.trim().split(/\s+/))
    } else {
        array.push(childs[i].outerHTML)
    }
}

테그와 text를 한글자씩 분리

다음 정규식 사용 /(?=[^>]*(?=<|$))/g

'aa<f class="">b<i alt="">c</i></f>'.split(/(?=[^>]*(?=<|$))/g)

-> ["a", "a", "<f class=\"\">", "b", "<i alt=\"\">", "c", "</i>", "</f>"]

업데이트: