import 'package:html/parser.dart' show parse;
class Em {
static regCate(String origin) {
String str = origin;
RegExp exp = RegExp('<[^>]*>([^<]*)[^>]*>');
Iterable matches = exp.allMatches(origin);
for (Match match in matches) {
str = match.group(1)!;
}
return str;
}
static regTitle(String origin) {
RegExp exp = RegExp('<[^>]*>([^<]*)[^>]*>');
List res = [];
origin.splitMapJoin(
exp,
onMatch: (Match match) {
String matchStr = match[0]!;
Map map = {'type': 'em', 'text': regCate(matchStr)};
res.add(map);
return regCate(matchStr);
},
onNonMatch: (String str) {
if (str != '') {
str = parse(str).body?.text ?? str;
Map map = {'type': 'text', 'text': str};
res.add(map);
}
return str;
},
);
return res;
}
static String decodeHtmlEntities(String title) {
return parse(title).body?.text ?? title;
// return title
// .replaceAll('<', '<')
// .replaceAll('>', '>')
// .replaceAll('"', '"')
// .replaceAll(''', "'")
// .replaceAll('"', '"')
// .replaceAll(''', "'")
// .replaceAll(' ', " ")
// .replaceAll('&', "&")
// .replaceAll(''', "'");
}
}