| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // 转义聊天内容中的特殊字符
- function replaceContent(content) {
- // 支持的html标签
- var html = function (end) {
- return new RegExp('\\n*\\[' + (end || '') + '(pre|div|span|p|table|thead|th|tbody|tr|td|ul|li|ol|li|dl|dt|dd|h2|h3|h4|h5)([\\s\\S]*?)\\]\\n*', 'g');
- };
- content = (content || '').replace(/&(?!#?[a-zA-Z0-9]+;)/g, '&')
- .replace(/</g, '<').replace(/>/g, '>').replace(/'/g, ''').replace(/"/g, '"') // XSS
- .replace(/@(\S+)(\s+?|$)/g, '@<a href="javascript:;">$1</a>$2') // 转义@
- .replace(/face\[([^\s\[\]]+?)\]/g, function (face) { // 转义表情
- var alt = face.replace(/^face/g, '');
- return '<img alt="' + alt + '" title="' + alt + '" src="' + faces[alt] + '">';a
- })
- .replace(/img\[([^\s]+?)\]/g, function (img) { // 转义图片
- return '<img class="layui-whisper-photos" src="' + img.replace(/(^img\[)|(\]$)/g, '') + '" width="100px" height="100px">';
- })
- .replace(/file\([\s\S]+?\)\[[\s\S]*?\]/g, function (str) { // 转义文件
- var href = (str.match(/file\(([\s\S]+?)\)\[/) || [])[1];
- var text = (str.match(/\)\[([\s\S]*?)\]/) || [])[1];
- if (!href) return str;
- return '<a class="layui-whisper-file" href="' + href + '" download target="_blank"><i class="layui-icon"></i><cite>' + (text || href) + '</cite></a>';
- })
- .replace(/a\([\s\S]+?\)\[[\s\S]*?\]/g, function (str) { // 转义链接
- var href = (str.match(/a\(([\s\S]+?)\)\[/) || [])[1];
- var text = (str.match(/\)\[([\s\S]*?)\]/) || [])[1];
- if (!href) return str;
- return '<a href="' + href + '" target="_blank">' + (text || href) + '</a>';
- }).replace(html(), '\<$1 $2\>').replace(html('/'), '\</$1\>') // 转移HTML代码
- .replace(/\n/g, '<br>') // 转义换行
- return content;
- };
- // 表情替换
- var faces = function () {
- var alt = getFacesIcon(), arr = {};
- layui.each(alt, function (index, item) {
- arr[item] = '/static/service/js/layui/images/face/' + index + '.gif';
- });
- return arr;
- }();
- // 表情对应数组
- function getFacesIcon() {
- return ["[微笑]", "[嘻嘻]", "[哈哈]", "[可爱]", "[可怜]", "[挖鼻]", "[吃惊]", "[害羞]", "[挤眼]", "[闭嘴]", "[鄙视]",
- "[爱你]", "[泪]", "[偷笑]", "[亲亲]", "[生病]", "[太开心]", "[白眼]", "[右哼哼]", "[左哼哼]", "[嘘]", "[衰]",
- "[委屈]", "[吐]", "[哈欠]", "[抱抱]", "[怒]", "[疑问]", "[馋嘴]", "[拜拜]", "[思考]", "[汗]", "[困]", "[睡]",
- "[钱]", "[失望]", "[酷]", "[色]", "[哼]", "[鼓掌]", "[晕]", "[悲伤]", "[抓狂]", "[黑线]", "[阴险]", "[怒骂]",
- "[互粉]", "[心]", "[伤心]", "[猪头]", "[熊猫]", "[兔子]", "[ok]", "[耶]", "[good]", "[NO]", "[赞]", "[来]",
- "[弱]", "[草泥马]", "[神马]", "[囧]", "[浮云]", "[给力]", "[围观]", "[威武]", "[奥特曼]", "[礼物]", "[钟]",
- "[话筒]", "[蜡烛]", "[蛋糕]"]
- }
|