最近的一个需求,wangeditor富文本编辑器会自带p标签,会导致渲染出来的由于p标签换行会导致样式出现问题,但是目前没找到wangeditor不带p标签的方法,于是乎,换了个思路,用正则把字符串中带的p标签全部替换掉,亲测有效。
首先看看数据结构:
//数据
var str ='<p> 这是一个多选题</p> <p> <img src="https://obs-cn-sxlc.obs.cn-southwest-2.myhuaweicloud.com/2023/3/30/1680156209340.jpeg" style="max-width:100%;" contenteditable="false"/></p>';
//替换第一个p标签
var str1 = x.replace(/<p>([^<]*?)<\/p>/gi, '$1')
//替换所有p标签
var str2 = x.replace(/<p>/g, function (match) {
return match = ''
}).replace(/<\/p>/g, function (match) {
return match = ''
}).replace(/ /g, function (match) {
return match = ''
})
实现效果如下:
一些常用的正则表达式记录:
// 英文数字
/^[A-Za-z0-9]*$/,
// 身份证
/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-
9])|10|20|30|31)\d{3}[0-9Xx]$/,
// 中英文数字
/^[\u4E00-\u9FA5A-Za-z0-9]+$/,
// 非负数包含小数
/^\d+(\.{0,7}\d+){0,1}$/,
// 是不是数字
/(^[\-0-9][0-9]*(.[0-9]+)?)$/,
// 最多两位小数
/^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/,
//是否是邮箱
/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
//是否是中文
/^[\u4E00-\u9FA5]{2,4}$/
//是否是小写字母
/^[a-z]+$/
//是否是大写字母开头
/^[A-Za-z]+$/
//以什么开头(例ROLE_开头)
/^ROLE_.*/
//不以什么开头(例不以ROLE_开头)
/^(?!ROLE_).*/