常用正则合集
- 1、匹配字符串中的所有标签,拆分字符串并且将标签作为单独一项
- 2、当我们使用contenteditable 属性的标签时,回车事件总是会给我们添加换行 ("
- 3、移除字符串中某一个标签以及中间包裹的内容。以自定义的 remove 标签为例
1、匹配字符串中的所有标签,拆分字符串并且将标签作为单独一项
/(<\/?.+?>)/g
splitStringByTags 函数接受一个参数 inputString,然后使用正则表达式/(<\/?.+?>)/g
来匹配字符串中的所有标签。然后,利用 split() 方法将字符串按照标签拆分成数组,并通过 filter(Boolean) 来去除空字符串项,最终返回包含拆分结果的数组
function splitStringByTags(inputString) {
var regex = /(<\/?.+?>)/g;
return inputString.split(regex).filter(Boolean);
}
// 测试函数
var inputString = '<p>This is</p> <b>bold</b> and <i>italic</i>.';
var result = splitStringByTags(inputString);
console.log(result);
//输出结果:['<p>', 'This is', '</p>', ' ', '<b>', 'bold', '</b>', ' and ', '<i>', 'italic', '</i>', '.']
2、当我们使用contenteditable 属性的标签时,回车事件总是会给我们添加换行 (“
”),且复制粘贴时候也容易被带上 span 标签。所以我们需要处理一下这些标签。
/<\s*(span|div|br)[^>]*>|<\/\s*(span|div)\s*>/gi
let str = string.replace(/<\s*(span|div|br)[^>]*>|<\/\s*(span|div)\s*>/gi,"")//将字符串中的所有 div、br、span标签都去掉
3、移除字符串中某一个标签以及中间包裹的内容。以自定义的 remove 标签为例
/<remove[^>]*>.*?<\/remove>/
let str = string?.replace(/<remove[^>]*>.*?<\/remove>/gi, "");