|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 9.9 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 21 KiB |
@ -0,0 +1,26 @@ |
|||
const emoTextList = ['憨笑', '媚眼', '开心', '坏笑', '可怜', '爱心', '笑哭', '拍手', '惊喜', '打气', |
|||
'大哭', '流泪', '饥饿', '难受', '健身', '示爱', '色色', '眨眼', '暴怒', '惊恐', |
|||
'思考', '头晕', '大吐', '酷笑', '翻滚', '享受', '鼻涕', '快乐', '雀跃', '微笑', |
|||
'贪婪', '红心', '粉心', '星星', '大火', '眼睛', '音符', "叹号", "问号", "绿叶", |
|||
"燃烧", "喇叭", "警告", "信封", "房子", "礼物", "点赞", "举手", "喝彩", "点头", |
|||
"摇头", "偷瞄", "庆祝", "疾跑", "打滚", "惊吓", "起跳" |
|||
]; |
|||
|
|||
|
|||
// 将匹配结果替换表情图片
|
|||
let textToImg = (emoText) => { |
|||
let word = emoText.replace(/\#|\;/gi, ''); |
|||
|
|||
let idx = emoTextList.indexOf(word); |
|||
if (idx == -1) { |
|||
return emoText; |
|||
} |
|||
|
|||
let url = new URL(`../assets/emoji/${idx}.gif`, import.meta.url).href; |
|||
return `<img src="${url}" style="width:20px;heigt:20px;" />` |
|||
} |
|||
|
|||
|
|||
export const transform = (content) => { |
|||
return content.replace(/\#[\u4E00-\u9FA5]{1,3}\;/gi, (text) => textToImg(text)); |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
export const html2Escape = (strText) => { |
|||
return strText.replace(/[<>&"]/g, function(c) { |
|||
return { |
|||
'<': '<', |
|||
'>': '>', |
|||
'&': '&', |
|||
'"': '"' |
|||
} [c]; |
|||
}); |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
export const replaceURLWithHTMLLinks = (content) => { |
|||
// 使用正则表达式匹配更广泛的URL格式(此正则由deepseek生成)
|
|||
const urlRegex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|]|\bwww\.[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; |
|||
return content.replace(urlRegex, (url) => { |
|||
// 如果URL不以http(s)://开头,则添加http://前缀
|
|||
if (!url.startsWith("http")) { |
|||
url = "http://" + url; |
|||
} |
|||
return `<a href="${url}" target="_blank" style="color: #5359dc;text-decoration: underline;">${url}</a>`; |
|||
}); |
|||
} |
|||