富文本输入框,存在<p>的标签保留,目前我采用的办法:
正则表达式的形式来筛选文字:
const regex = /<p>(.*?)<\/p>/g; const matches = []; // 匹配所有结果 let match; while ((match = regex.exec(allActSpecData)) !== null) { matches.push(match[1]); // 将匹配到的内容添加到数组中 }
前景提要:
今日在开发时,发现若依框架下,采用的富文本输入框,存在<p>标签。起初移动端数据传递没有<p>标签,在后台修改后出现了标签,导致移动端出现显示问题。于是准备进行修改。
为保证后台正常使用,所以直接在,移动端的JS部分进行数据筛选:
1、书写正则表达式:
const regex = /<p>(.*?)<\/p>/g;
//匹配所有 <p> 标签内的内容
上文用于匹配,<p>的。同理,如果需要进行所有标签的去除可以用:
const regex = /<[^>]*>/g;
2、对获取的数据是否带有标签,进行判断
进行后续数据获取操作:indexOf()用于判断是否存在其中的值。
//假设获取到的数据为:allActSpecData
const matches = []; // 匹配所有结果
let match;
if (allActSpecData.indexOf('<p>') === -1) {
//用于判定是否存在<p>标签
// 如果没有 <p> 标签,则直接将整个字符串作为匹配结果
matches.push(allActSpecData);
}
else
while ((match = regex.exec(allActSpecData)) !== null) {
matches.push(match[1]); // 将匹配到的内容添加到数组中
}
3、进行数据验证
console.log('==== 获取到的信息:', allActSpecData);
console.log('==== 筛选后的信息:' , matches);