特殊字符和表情校验

简介: 开发的程序经过测试总是又奇奇怪怪的问题,譬如输入框输入了表情符号和特殊字符,这个时候我们把数据给了后台,后台报错了,那么我们就得做校验(虽然正常用户不会这么做。)那么整理了一下校验规则,把它贴出来,方便大家遇到的时候可以直接使用,以下是单独封装成一个js了通过,通过export导出

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('你需要校验的字符串')
结束语:关注我,少走弯路!

image.png

相关文章
|
4月前
|
前端开发 JavaScript 安全
前端JS实现密码校验键盘横竖、26字母、相同字母、相同数字、密码包含用户名、数字 字母不能连续 不能相同三个、不能横向 竖向 连续三个 包含字符、不能有中文符号
该 JavaScript 代码实现了一个严格的密码校验功能,确保密码满足多种安全要求,包括长度、字符类型、不包含中文及特殊字符、不与用户名相似等。通过多个辅助函数,如 `validateFormat` 检查密码格式,`isHasChinaCharFun` 检测中文符号,`getCharAll` 生成键盘组合,以及 `checkPasswordFun` 综合验证密码的有效性和安全性。此工具对于提高用户账户的安全性非常有用。
152 0
|
7月前
|
自然语言处理 Rust 算法
【算法】17. 电话号码的字母组合(多语言实现)
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
【算法】17. 电话号码的字母组合(多语言实现)
|
9月前
正则验证姓名否中文(包含生僻字)
正则验证姓名否中文(包含生僻字)
618 0
|
前端开发
手机199开头的号码的正则验证
手机199开头的号码的正则验证
134 2
验证input输入框(字母,数字,符号,中文)
验证input输入框(字母,数字,符号,中文)
|
前端开发
前端react验证码6位随机码(大小写字母+数字)
前端react验证码6位随机码(大小写字母+数字)
321 0
|
数据安全/隐私保护
正则校验密码包含字母数字符号
正则校验密码包含字母数字符号
264 1
|
JavaScript Java Apache
java后台对前端输入的特殊字符进行转义
转自:http://www.cnblogs.com/yangzhilong/p/5667165.html     java后台对前端输入的特殊字符进行转义   HTML: 常见的帮助类有2个:一个是spring的HtmlUtils,另外一个是apache.
2949 0