js正则校验特殊的不可见字符的具体实现

 更新时间:2024年06月25日 11:10:19   作者:Charonmomo  
用户可能从Excel或者其他地方直接复制粘贴,这时候提交到后端会导致获取的用户输入中包含一些特殊的不可见字符,本文主要介绍了js正则校验特殊的不可见字符的具体实现,具有一定的参考价值,感兴趣的可以了解一下

背景

表单的输入框,用户可能从Excel或者其他地方直接复制粘贴,这时候提交到后端会导致获取的用户输入中包含一些特殊的不可见字符,比如tab键或者制表符等,这时需要在前端对用户输入做一些检验,检查是否存在不可见字符。

方法

ASCII 编码中第 0~31 个字符(开头的 32 个字符)以及第 127
个字符(最后一个字符)都是不可见的(无法显示),但是它们都具有一些特殊功能,所以称为控制字符( Control
Character)或者功能码(Function Code)。

ASCII 码关键部分的信息如下图:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注意这里 0~31 及127字符 是控制字符(不可见字符),我们可以在正则中通过校验是否包含这些字符的16进制来判断是否含有特殊字符。

关于这些控制字符的详细含义可以参考:ASCII控制字符的解释

完整的 ASCII 码表:

在这里插入图片描述

校验

在线正则校验工具:正则表达式在线测试

一串简单的测试文本:

ABC1823中文0456def$%#?.            mMo

1. 校验是否含有特殊的不可见字符
只要有一个不可见字符就会报错

[\x00-\x1F\x7F]

注意这里是两个0,采用 \x0-\x1F\x7F 这种格式是错误的,没法进行正常的校验。

在这里插入图片描述

2. 检验是否含有不可见字符

[^\x00-\x1F\x7F]+

注意这里 ^ 的位置不要写在外面,外面表示以什么开头

在这里插入图片描述

代码

import React,{useState} from "react";
import {Input,message} from "antd";

const RegTestInput = function(){
	
	const testValue = (e) => {
		const { value } = e.target;
		if(value) {
			const reg = /[\x00-\x1f\x7f]/
			if(reg.test(value)){
				message.error("不允许包含特殊字符")
			}
		}
	}
	
	return (
		<div>
			<Input onChange={testValue} />
		</div>
	)
}

到此这篇关于js正则校验特殊的不可见字符的文章就介绍到这了,更多相关js正则校验不可见字符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 微信小程序静默登录和维护自定义登录态详解

    微信小程序静默登录和维护自定义登录态详解

    这篇文章主要给大家介绍了关于微信小程序静默登录和维护自定义登录态的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • 引用 js在IE与FF之间的区别详细解析

    引用 js在IE与FF之间的区别详细解析

    这篇文章主要介绍了js在IE与FF之间的区别。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • JS高阶函数原理与用法实例分析

    JS高阶函数原理与用法实例分析

    这篇文章主要介绍了JS高阶函数原理与用法,结合实例形式分析了javascript函数式编程、一等函数、高阶函数等相关概念、原理及使用技巧,需要的朋友可以参考下
    2019-01-01
  • 原生JS实现天气预报

    原生JS实现天气预报

    这篇文章主要为大家详细介绍了原生JS实现天气预报,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • JS基于VUE组件实现城市列表效果

    JS基于VUE组件实现城市列表效果

    这篇文章主要为大家详细介绍了JS基于VUE组件实现城市列表效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Javascript insertAfter() 实现函数代码

    Javascript insertAfter() 实现函数代码

    DOM没有提供insertAfter()方法,我们可以自己扩展下。
    2011-10-10
  • JS常用正则表达式总结

    JS常用正则表达式总结

    JS常用正则表达式总结。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • 详解iframe跨域的几种常用方法(小结)

    详解iframe跨域的几种常用方法(小结)

    这篇文章主要介绍了详解iframe跨域的几种常用方法(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • javascrpt密码强度校验函数详解

    javascrpt密码强度校验函数详解

    这篇文章主要为大家详细介绍了javascrpt密码强度校验函数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • 利用AJAX实现WordPress中的文章列表及评论的分页功能

    利用AJAX实现WordPress中的文章列表及评论的分页功能

    在文中列表页方面利用AJAX制作滚动到底触发翻页的效果比较常见,而在评论加载时AJAX显示正在加载也很常用,下面就来看一下如何利用AJAX实现WordPress中的文章列表及评论的分页功能
    2016-05-05

最新评论