HTML 字符串划分数组
时间: 2023-08-14 19:11:09 浏览: 131
你可以使用正则表达式或者 DOM 操作来将 HTML 字符串划分为数组。以下是使用正则表达式的示例代码:
```javascript
function splitHTMLString(htmlString) {
// 匹配 HTML 标签的正则表达式
var tagRegex = /<[^>]+>/g;
// 使用正则表达式将 HTML 字符串划分为数组
var htmlArray = htmlString.split(tagRegex);
// 过滤掉空字符串
htmlArray = htmlArray.filter(function(item) {
return item.trim() !== '';
});
return htmlArray;
}
// 使用示例
var htmlString = '<div><p>Hello</p><p>World</p></div>';
var result = splitHTMLString(htmlString);
console.log(result); // 输出: ["Hello", "World"]
```
在上述代码中,我们使用正则表达式 `<[^>]+>` 来匹配 HTML 标签,并使用 `split()` 方法将 HTML 字符串划分为数组。然后,我们使用 `filter()` 方法过滤掉空字符串,最后返回划分后的数组。
另外,如果你希望保留 HTML 标签,而只是划分其中的文本内容,你可以使用 DOM 操作来实现。以下是一个使用 DOM 操作的示例代码:
```javascript
function splitHTMLString(htmlString) {
// 创建一个临时的 div 元素
var tempDiv = document.createElement('div');
// 将 HTML 字符串赋值给 div 的 innerHTML 属性
tempDiv.innerHTML = htmlString;
// 获取 div 中的所有文本节点
var textNodes = Array.from(tempDiv.childNodes).filter(function(node) {
return node.nodeType === Node.TEXT_NODE;
});
// 提取文本节点的内容并返回数组
var htmlArray = textNodes.map(function(node) {
return node.nodeValue.trim();
});
return htmlArray;
}
// 使用示例
var htmlString = '<div><p>Hello</p><p>World</p></div>';
var result = splitHTMLString(htmlString);
console.log(result); // 输出: ["Hello", "World"]
```
在上述代码中,我们创建了一个临时的 div 元素,并将 HTML 字符串赋值给它的 innerHTML 属性。然后,我们通过访问 div 的 childNodes 属性,筛选出其中的文本节点,并提取这些文本节点的内容,最终返回划分后的数组。
阅读全文