把连续的emoji、特殊字符、空格转换为一个-
/([\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030|["#%&()+,,/::;;<=>??@\\|“”()《》 ])+/g
+ : 匹配一个或多个
|:或
const emojiRegStr = '[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\\uA9|\\uAE|\u3030';
const specCharRegStr = '["#%&()+,,/::;;<=>??@\|“”()《》 ]';
const targetReg = eval(`/({specCharRegStr})+/g`);
const str = "😉😆😂😄😄$%^^&&哈哈哈"
str.replace(targetReg, '-');
定义基础的正则表达式字符串,使用的时候通过eval计算这些字符串,这些字符串就会作为正则表达式去执行。
这样就可以定义多种正则,方便组合使用