首页 > 文章列表 > 如何用正则表达式过滤非法输入字符?

如何用正则表达式过滤非法输入字符?

330 2024-12-07

如何用正则表达式过滤非法输入字符?

识别和过滤非法输入:正则表达式必知必会

在日常开发中,经常需要对用户输入进行校验,防止恶意输入导致系统崩溃或错误。其中,过滤非法输入字符尤为重要,例如禁止输入"、、emoji、空行和空格。

针对上述需求,我们可以编写一条正则表达式来满足条件:

input.replace(/["su{1F601}-u{1F64F}\]/ug,'')

正则表达式解析:

  • ": 双引号
  • s: 空格、制表符、换行符
  • u{1F601}-u{1F64F}: Emoji字符范围
  • : 转义字符
  • /ug: 正则表达式标志,u表示Unicode,g表示全局匹配

工作原理:

  1. replace方法用于查找并替换字符串中符合正则表达式模式的部分。
  2. 正则表达式匹配所有满足以下条件的字符:

    • 双引号 "
    • 空格及其他空白字符
    • Emoji字符(Unicode范围为 u1F601 - u1F64F)
    • 转义字符
  3. 匹配到符合条件的字符后,将其替换为空字符串 ''。

特别说明:

  • Emoji的范围来自百度,准确性需要自行考证。
  • 此正则表达式已通过SegmentFault思否社区10周年「问答」打卡活动验证。
来源:1729919064