用正则匹配富文本中的文本,并替换其内容
问题描述:
有这样的一段字符串:
"<p id='wise'>123 456 789<br>hello<span title='hello' 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 id='wise'>123 456 789<br>hello<span title='hello' src='//www.wisewrong.com/img/123.png'>world</span></p>";
superTrim(str);
// "<p id='wise'>123 456 789<br>HELLO<span title='hello' src='//www.wisewrong.com/img/123.png'>WORLD</span></p>"重点在于正则的编写,其次需要利用字符串的 replace 函数,当第一个入参是正则的时候,第二个参数可以用函数的形式来接受正则的匹配结果,且这个函数的返回值会用来替换被正则匹配到的字符串
基于这个特性,只要正则匹配到了字符串,就可以随便处理了
这里只是举了全大写的例子,实际上还可以做简繁转换、文本格式化等复杂功能
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!