theme: juejin
highlight: atom-one-dark
开发的程序经过测试总是又奇奇怪怪的问题,譬如输入框输入了表情符号和特殊字符,这个时候我们把数据给了后台,后台报错了,那么我们就得做校验(虽然正常用户不会这么做。)那么整理了一下校验规则,把它贴出来,方便大家遇到的时候可以直接使用,以下是单独封装成一个js了通过,通过export导出
特殊字符和表情校验
// 是否是表情字符串
const isEmojiCharacter = function (substring) {
if (!substring) return false;
for (var i = 0; i < substring.length; i++) {
var hs = substring.charCodeAt(i);
if (0xd800 <= hs && hs <= 0xdbff) {
if (substring.length > 1) {
var ls = substring.charCodeAt(i + 1);
var uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;
if (0x1d000 <= uc && uc <= 0x1f77f) {
return true;
}
}
} else if (substring.length > 1) {
var ls = substring.charCodeAt(i + 1);
if (ls == 0x20e3) {
return true;
}
} else {
if (0x2100 <= hs && hs <= 0x27ff) {
return true;
} else if (0x2B05 <= hs && hs <= 0x2b07) {
return true;
} else if (0x2934 <= hs && hs <= 0x2935) {
return true;
} else if (0x3297 <= hs && hs <= 0x3299) {
return true;
} else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030
|| hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b
|| hs == 0x2b50) {
return true;
}
}
}
}
// 是否是特殊字符
const isSpecialCharacters = function (str) {
if (!str) return false;
var reg = /[~#^$@%&!?%*]/gi;
return reg.test(str);
}
export {
isEmojiCharacter,
isSpecialCharacters
}
// 使用
import { isEmojiCharacter, isSpecialCharacters } from '你的文件地址';
isEmojiCharacter('你需要校验的字符串')
isSpecialCharacters('你需要校验的字符串')