Двоеточие после значения «word» - сложная часть, но, используя атрибут textContent
и некоторые манипуляции со строками, вы можете установить строку, которая может быть split()
в массив, который вы ищете.
Сначала соберите анализируемый элемент:
var p = document.querySelector("p");
Затем получите текстовое содержимое из него, используя атрибут textContent:
var pContent = p.textContent;
Далее, «массируйте» содержимое, чтобы убедиться, что любые «несловесные» символы отделены от слов без потери (пробел на любом конце обрабатывает несловесные символы перед и после слов):
var result = pContent.replace(/(\W+)/g, " $0 ");
Затем обрежьте все начальные или конечные пробелы, чтобы избежать пустых элементов в начале и конце массива:
var result = result.trim();
Затем, наконец, разделите обновленную строку на блоки пробелов:
var result = result.split(/\s+/);
Что делает это еще лучше, так это то, что вы можете фактически выполнять все эти манипуляции в одной строке кода, если хотите, как показано в сокращенном решении ниже:
var element1 = document.querySelector("#element1");
var element2 = document.querySelector("#element2");
var element3 = document.querySelector("#element3");
function elementTextToArray(element) {
return element.textContent.replace(/(\W+)/g, " $0 ").trim().split(/\s+/);
}
console.log(elementTextToArray(element1));
console.log(elementTextToArray(element2));
console.log(elementTextToArray(element3));
<p id="element1"><strong>word</strong></p>
<p id="element2"><strong>word</strong>: this is a sentence</p>
<p id="element3"><strong>word</strong>: this is a sentence <em>with multiple levels of <strong>depth</strong> in it!!!</em></p>
ОБНОВЛЕНИЕ # 1 Сделано "не-слово" проверить оба жадные (захватывает все не-символы) и способен захватывать группы несловесных символов (например, «!!!»).