微信富文本转义主要是使用正则表达式进行替换标签
贴代码 =>
//富文本转义方法
convertHtmlToText: function convertHtmlToText(inputText) {
var returnText = '' + inputText
returnText = returnText.replace(/<\/div>/gi, '\r\n')
returnText = returnText.replace(/<\/li>/gi, '\r\n')
returnText = returnText.replace(/<li>/gi, ' * ')
returnText = returnText.replace(/<\/ul>/gi, '\r\n')
//-- remove BR tags and replace them with line break
returnText = returnText.replace(/<br\s*[\/]?>/gi, '\r\n')
//-- remove P and A tags but preserve what's inside of them
returnText = returnText.replace(/<p.*?>/gi, '\r\n')
returnText = returnText.replace(/<a.*href="(.*?)".*>(.*?)<\/a>/gi, ' $2 ($1)')
//-- remove all inside SCRIPT and STYLE tags
returnText = returnText.replace(/<script.*>[\w\W]{1,}(.*?)[\w\W]{1,}<\/script>/gi, '')
returnText = returnText.replace(/<style.*>[\w\W]{1,}(.*?)[\w\W]{1,}<\/style>/gi, '')
//-- remove all else
returnText = returnText.replace(/<(?:.|\s)*?>/g, '')
//-- get rid of more than 2 multiple line breaks:
returnText = returnText.replace(/(?:(?:\r\n|\r|\n)\s*){2,}/gim, '\r\n\r\n')
//-- get rid of more than 2 spaces:
returnText = returnText.replace(/ +(?= )/g, '')
//-- get rid of html-encoded characters:
returnText = returnText.replace(/ /gi, ' ')
returnText = returnText.replace(/&/gi, '&')
returnText = returnText.replace(/"/gi, '"')
returnText = returnText.replace(/</gi, '<')
returnText = returnText.replace(/>/gi, '>')
return returnText
}
调用 =>
效果 =>
搬运自 => https://www.jianshu.com/p/74a6cbc21b41