js正則校驗(yàn)特殊的不可見字符的具體實(shí)現(xiàn)
背景
表單的輸入框,用戶可能從Excel或者其他地方直接復(fù)制粘貼,這時(shí)候提交到后端會(huì)導(dǎo)致獲取的用戶輸入中包含一些特殊的不可見字符,比如tab鍵或者制表符等,這時(shí)需要在前端對(duì)用戶輸入做一些檢驗(yàn),檢查是否存在不可見字符。
方法
ASCII 編碼中第 0~31 個(gè)字符(開頭的 32 個(gè)字符)以及第 127
個(gè)字符(最后一個(gè)字符)都是不可見的(無法顯示),但是它們都具有一些特殊功能,所以稱為控制字符( Control
Character)或者功能碼(Function Code)。
ASCII 碼關(guān)鍵部分的信息如下圖:



注意這里 0~31 及127字符 是控制字符(不可見字符),我們可以在正則中通過校驗(yàn)是否包含這些字符的16進(jìn)制來判斷是否含有特殊字符。
關(guān)于這些控制字符的詳細(xì)含義可以參考:ASCII控制字符的解釋
完整的 ASCII 碼表:

校驗(yàn)
在線正則校驗(yàn)工具:正則表達(dá)式在線測試
一串簡單的測試文本:
ABC1823中文0456def$%#?. mMo
1. 校驗(yàn)是否含有特殊的不可見字符
只要有一個(gè)不可見字符就會(huì)報(bào)錯(cuò)
[\x00-\x1F\x7F]
注意這里是兩個(gè)0,采用 \x0-\x1F\x7F 這種格式是錯(cuò)誤的,沒法進(jìn)行正常的校驗(yàn)。

2. 檢驗(yàn)是否含有不可見字符
[^\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>
)
}到此這篇關(guān)于js正則校驗(yàn)特殊的不可見字符的文章就介紹到這了,更多相關(guān)js正則校驗(yàn)不可見字符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Javascript校驗(yàn)密碼復(fù)雜度的正則表達(dá)式
- 利用js正則表達(dá)式校驗(yàn)正數(shù)、負(fù)數(shù)、和小數(shù)
- JavaScript正則表達(dá)式校驗(yàn)非負(fù)整數(shù)實(shí)例
- JavaScript正則表達(dá)式校驗(yàn)非零的負(fù)整數(shù)實(shí)例
- JavaScript正則表達(dá)式校驗(yàn)非零的正整數(shù)實(shí)例
- JS 密碼強(qiáng)度校驗(yàn)的正則表達(dá)式(簡單且好用)
- js正則表達(dá)式校驗(yàn)指定字符串的方法
- javascript使用正則表達(dá)式實(shí)現(xiàn)注冊(cè)登入校驗(yàn)
- js正則表達(dá)式簡單校驗(yàn)方法
- JavaScript正則表達(dá)式實(shí)現(xiàn)注冊(cè)信息校驗(yàn)功能
相關(guān)文章
怎么在下面的HTML里調(diào)用數(shù)組cs[]的值
怎么在下面的HTML里調(diào)用數(shù)組cs[]的值...2007-01-01
JavaScript基于對(duì)象去除數(shù)組重復(fù)項(xiàng)的方法
這篇文章主要介紹了JavaScript基于對(duì)象去除數(shù)組重復(fù)項(xiàng)的方法,結(jié)合實(shí)例形式分析了javascript數(shù)組去重的操作步驟與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-10-10
JavaScript動(dòng)態(tài)檢測密碼強(qiáng)度原理及實(shí)現(xiàn)方法詳解
這篇文章主要介紹了JavaScript動(dòng)態(tài)檢測密碼強(qiáng)度原理及實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式詳細(xì)分析了javascript針對(duì)輸入字符串密碼強(qiáng)度檢測的原理與相關(guān)判斷操作技巧,需要的朋友可以參考下2019-06-06
js隨機(jī)生成字母數(shù)字組合的字符串 隨機(jī)動(dòng)畫數(shù)字
本篇文章給大家分享的js隨機(jī)生成字母數(shù)字組合的字符串,js隨機(jī)生成動(dòng)畫數(shù)字,包括常用的產(chǎn)生隨機(jī)數(shù)的用法,需要的朋友可以參考下2015-09-09

