前端处理过滤,特殊字符以及输入法特殊表情符号emoji的正则方法

问题描述

输入法输入表情或特殊符号,存入数据库时,会发现有报错,因为UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去。

解决方法

前端处理方法

思路使用正则匹配特殊符号或表情进行过滤,如下(根据自己的需求调整):

javascript 复制代码
// 使用正则检查输入值是否包含表情符号  
			checkEmoji(inputValue){
				const emojiPattern = /[\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/;  
				const hasEmoji = emojiPattern.test(inputValue);  
				console.log('是否包含表情符号',hasEmoji);
			},
			// 过滤特殊符号
			checkSymbol(inputValue){
				console.log('前端过滤特殊符号');
				const specialSymbol = /[`~!@#$%^&*()+=|{}':;',/\/\[\].<>/?~!@#¥%......&*()------+|{}【】';:""'。,、?]/ 
				const hasSymbol = specialSymbol.test(inputValue)
				console.log('是否包含特殊符号',hasSymbol);
			}
后端处理方法

后端存入数据库的时候,将Mysql的编码从utf8转换成utf8mb4

相关推荐
你说啥名字好呢5 分钟前
【Vue 渲染流程揭秘】
前端·javascript·vue.js·vue3·源码分析
艾小码10 分钟前
Vue表单组件进阶:打造属于你的自定义v-model
前端·javascript·vue.js
Alang11 分钟前
【LM-PDF】一个大模型时代的 PDF 极速预览方案是如何实现的?
前端·人工智能·后端
lcc1871 小时前
Vue mixin混入
前端·vue.js
t***L2661 小时前
终于搞定了!Vue项目打包后白屏问题
前端·javascript·vue.js
u***j3241 小时前
前端组件通信方式,Vue与React对比
前端·vue.js·react.js
小贺要学前端1 小时前
【无标题】
前端·javascript·vue·技术趋势
im_AMBER1 小时前
React 18 用 State 响应输入
前端·react.js·前端框架
前端摸鱼匠1 小时前
Vue 3 的全局组件注册:讲解如何全局注册组件
前端·javascript·vue.js·前端框架·node.js·ecmascript
lcc1873 小时前
Vue VueComponent
前端·vue.js