使用正则表达式处理常见html标签问题

在做富文本编辑时总是会处理一些html标签,刚好复习一下上篇内容,自己写了一个例子

let str = '<div class="test">正则表达式测试<span style="background-color:red">红色</span><span style="background-color:green">绿色</span><span style="background-color:blue">蓝色</span></div>'

正则一:去除所有标签

let str1 = str.replace(/<.*?>/g,'')
 console.log(str1)

str1打印出为 ‘正则表达式测试红色红色红色’

正则二:去除所有标签除了span标签

let str2 = str.replace( /<(?!span|\/span).*?>/g,'')
console.log(str2)

str2打印出为 “正则表达式测试红色绿色蓝色”

正则三:去除所有标签并将span标签替换为特殊字符

let str3 = str.replace( /<(?!span|\/span).*?>/g,'').replace(/<(span .*?>|\/span>)/g,'#')
console.log(str3)

str3打印出为"正则表达式测试#红色##绿色##蓝色#"

正则四:将字符串中特殊字符转换为某个特定标签

let  str4 = '正则表达式测试#红色##绿色##蓝色#'
str4.replace(/#(.*?)#/g,'<span style="backround-color:red">$1</span>')
console.log(str4)

str4打印出为"正则表达式测试红色绿色蓝色"

正则五:去除所有标签并将img标签的src内容显示

let str5 = '<div class="text">正则表达式测试2<span  style="background-color:red">红色</span><img src="https://img-blog.csdnimg.cn/20190221164504746.png"/></div>'
//只保留img标签  "正则表达式测试2红色<img src="https://img-blog.csdnimg.cn/20190221164504746.png"/>"
let str6 = str5.replace(/<(?!img).*?>/g,'')
// 将<img src="https://img-blog.csdnimg.cn/20190221164504746.png"/>替换为src内的值
str6.replace(/<img src="(.*?)"\/>/g,'$1')
console.log(str6)

str6打印出"正则表达式测试2红色https://img-blog.csdnimg.cn/20190221164504746.png"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值