用js实现正则表达式,过滤html所有标签,只返回内容
时间: 2023-05-30 17:03:39 浏览: 207
可以使用replace()函数和正则表达式来过滤HTML标签,具体代码如下:
```javascript
function filterHTML(html) {
return html.replace(/<[^>]+>/g, '');
}
// 示例
const html = '<p>这是一段带有标签的HTML文本。</p>';
const filteredText = filterHTML(html);
console.log(filteredText); // 输出:这是一段带有标签的HTML文本。
```
正则表达式`/<[^>]+>/g`表示匹配`<`和`>`之间的任意字符(不包括`>`),`g`表示全局匹配,匹配多个标签。使用replace()函数将匹配到的标签替换为空字符串,即去掉标签。最后返回去掉标签后的文本内容。
相关问题
wangeditor过滤表格格式
可以使用wangEditor提供的过滤器(filter)功能来过滤表格格式。具体步骤如下:
1. 打开wangEditor的配置文件(如editor.config.js);
2. 在配置文件中添加一个过滤器(filter)函数,函数接收一个参数html;
3. 在函数中使用正则表达式或其他方法来过滤掉表格格式的内容;
4. 将过滤后的html返回即可。
以下是一个示例过滤器函数,可以过滤掉表格格式:
```
const editor = new E('#editor')
editor.config.filter = function (html) {
// 过滤掉表格格式
return html.replace(/<table[^>]*>[\s\S]*?<\/table>/gi, '')
}
```
在这个示例中,使用了正则表达式来匹配包含<table>标签的内容,并将其替换为空字符串,从而达到过滤表格格式的目的。
HTML 字符串划分数组
你可以使用正则表达式或者 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 属性,筛选出其中的文本节点,并提取这些文本节点的内容,最终返回划分后的数组。