用正则匹配富文本中的文本,并替换其内容

Posted wisewrong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用正则匹配富文本中的文本,并替换其内容相关的知识,希望对你有一定的参考价值。

问题描述:

有这样的一段字符串:

"<p class=‘test‘ id=‘wise‘>123 456 789<br>hello<span title=‘hello‘ style=‘width: 200px;height:100px;‘ src=‘//www.wisewrong.com/img/123.png‘>world</span></p>"

这是一段包含了 html 标签信息的富文本,现在需要将其中的文本内容处理为全大写

 

解决方案:

function superTrim(str) {
  // 匹配标签之间的文本
  const reg = /(?<=>)[^>]+(?=<[/]?w+.*>)/g; 
  return str.replace(reg, s => s.toUpperCase());
}
const str = "<p class=‘test‘ id=‘wise‘>123 456 789<br>hello<span title=‘hello‘ style=‘width: 200px;height:100px;‘ src=‘//www.wisewrong.com/img/123.png‘>world</span></p>";

superTrim(str);
// "<p class=‘test‘ id=‘wise‘>123 456 789<br>HELLO<span title=‘hello‘ style=‘width: 200px;height:100px;‘ src=‘//www.wisewrong.com/img/123.png‘>WORLD</span></p>"

重点在于正则的编写,这里推荐一个大佬自己做的专门交流正则的社区

其次需要利用字符串的 replace 函数,当第一个入参是正则的时候,第二个参数可以用函数的形式来接受正则的匹配结果,且这个函数的返回值会用来替换被正则匹配到的字符串

基于这个特性,只要正则匹配到了字符串,就可以随便处理了

这里只是举了全大写的例子,实际上还可以做简繁转换、文本格式化等复杂功能

 

以上是关于用正则匹配富文本中的文本,并替换其内容的主要内容,如果未能解决你的问题,请参考以下文章

用正则表达式,清除文章中多余的换行和空白字符

每天学一个jquery插件-仿富文本框4

PHP匹配并替换自定义文本中的变量

使用正则匹配并填充文本模板

iOS开发进阶 - 富文本正则替换表情

如何用纯文本内容控件替换富文本内容控件