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正则校验不可见字符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • js 实现菜单左右滚动显示示例介绍

    js 实现菜单左右滚动显示示例介绍

    菜单左右滚动显示的实现方法有很多,在本文将为大家介绍下如何使用js实现,需要的朋友可以参考下,希望对大家有所帮助
    2013-11-11
  • js实现在页面上弹出蒙板技巧简单实用

    js实现在页面上弹出蒙板技巧简单实用

    蒙板是两个div,其中popWindow样式的div用于遮住整个页面并半透明,感兴趣的朋友可以参考下哈,希望对你学习js蒙版有所帮助
    2013-04-04
  • 关于JavaScript的面向对象和继承有利新手学习

    关于JavaScript的面向对象和继承有利新手学习

    这是一篇关于JavaScript的面向对象和继承的文章,对想学习JavaScript中面向对象的同学来说是很有帮助,虽然一些Javascript用户可能永远也不需要知道原型或面向对象语言的性质,但是那些来自传统面向对象的语言的开发者使用的时候会发现JavaScript的继承模型非常的奇怪
    2013-01-01
  • js实现登录拖拽窗口

    js实现登录拖拽窗口

    这篇文章主要为大家详细介绍了js实现登录拖拽窗口,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • date.parse在IE和FF中的区别

    date.parse在IE和FF中的区别

    这个方法是很常用的,比如在验证输入日期是否存在时,可以使用它,如果是一个不存在的日期,则其返回值将是NaN,另外如果要比较两个日期的先后,或是计算两个日期相差的天数 ,都可以用到。
    2010-07-07
  • js自定义select下拉框美化特效

    js自定义select下拉框美化特效

    这篇文章主要为大家介绍了javascript自定义select下拉框美化特效的相关资料,需要的朋友可以参考下
    2016-05-05
  • JavaScript原型式继承实现方法

    JavaScript原型式继承实现方法

    这篇文章主要介绍了JavaScript原型式继承实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 详解微信小程序中组件通讯

    详解微信小程序中组件通讯

    在本篇文章里我们给大家分享了微信小程序中组件通讯的相关知识点以及相关实例代码,有兴趣的朋友们学习分享下。
    2018-10-10
  • 使用脚本控制网页Table的显示隐藏(全代码)_AX

    使用脚本控制网页Table的显示隐藏(全代码)_AX

    使用脚本控制网页Table的显示隐藏(全代码)_AX...
    2006-12-12
  • 利用js的闭包原理做对象封装及调用方法

    利用js的闭包原理做对象封装及调用方法

    下面小编就为大家带来一篇利用js的闭包原理做对象封装及调用方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04

最新评论