js正則校驗(yàn)特殊的不可見(jiàn)字符的具體實(shí)現(xiàn)
背景
表單的輸入框,用戶可能從Excel或者其他地方直接復(fù)制粘貼,這時(shí)候提交到后端會(huì)導(dǎo)致獲取的用戶輸入中包含一些特殊的不可見(jiàn)字符,比如tab鍵或者制表符等,這時(shí)需要在前端對(duì)用戶輸入做一些檢驗(yàn),檢查是否存在不可見(jiàn)字符。
方法
ASCII 編碼中第 0~31 個(gè)字符(開(kāi)頭的 32 個(gè)字符)以及第 127
個(gè)字符(最后一個(gè)字符)都是不可見(jiàn)的(無(wú)法顯示),但是它們都具有一些特殊功能,所以稱(chēng)為控制字符( Control
Character)或者功能碼(Function Code)。
ASCII 碼關(guān)鍵部分的信息如下圖:
注意這里 0~31 及127字符 是控制字符(不可見(jiàn)字符),我們可以在正則中通過(guò)校驗(yàn)是否包含這些字符的16進(jìn)制來(lái)判斷是否含有特殊字符。
關(guān)于這些控制字符的詳細(xì)含義可以參考:ASCII控制字符的解釋
完整的 ASCII 碼表:
校驗(yàn)
在線正則校驗(yàn)工具:正則表達(dá)式在線測(cè)試
一串簡(jiǎn)單的測(cè)試文本:
ABC1823中文0456def$%#?. mMo
1. 校驗(yàn)是否含有特殊的不可見(jiàn)字符
只要有一個(gè)不可見(jiàn)字符就會(huì)報(bào)錯(cuò)
[\x00-\x1F\x7F]
注意這里是兩個(gè)0,采用 \x0-\x1F\x7F
這種格式是錯(cuò)誤的,沒(méi)法進(jìn)行正常的校驗(yàn)。
2. 檢驗(yàn)是否含有不可見(jiàn)字符
[^\x00-\x1F\x7F]+
注意這里 ^
的位置不要寫(xiě)在外面,外面表示以什么開(kāi)頭
代碼
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)特殊的不可見(jiàn)字符的文章就介紹到這了,更多相關(guān)js正則校驗(yàn)不可見(jià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á)式(簡(jiǎn)單且好用)
- js正則表達(dá)式校驗(yàn)指定字符串的方法
- javascript使用正則表達(dá)式實(shí)現(xiàn)注冊(cè)登入校驗(yàn)
- js正則表達(dá)式簡(jiǎn)單校驗(yàn)方法
- JavaScript正則表達(dá)式實(shí)現(xiàn)注冊(cè)信息校驗(yàn)功能
相關(guān)文章
怎么在下面的HTML里調(diào)用數(shù)組cs[]的值
怎么在下面的HTML里調(diào)用數(shù)組cs[]的值...2007-01-01JavaScript基于對(duì)象去除數(shù)組重復(fù)項(xiàng)的方法
這篇文章主要介紹了JavaScript基于對(duì)象去除數(shù)組重復(fù)項(xiàng)的方法,結(jié)合實(shí)例形式分析了javascript數(shù)組去重的操作步驟與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-10-10JavaScript動(dòng)態(tài)檢測(cè)密碼強(qiáng)度原理及實(shí)現(xiàn)方法詳解
這篇文章主要介紹了JavaScript動(dòng)態(tài)檢測(cè)密碼強(qiáng)度原理及實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式詳細(xì)分析了javascript針對(duì)輸入字符串密碼強(qiáng)度檢測(cè)的原理與相關(guān)判斷操作技巧,需要的朋友可以參考下2019-06-06詳解nuxt 微信公眾號(hào)支付遇到的問(wèn)題與解決
這篇文章主要介紹了詳解nuxt 微信公眾號(hào)支付遇到的問(wèn)題與解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08js隨機(jī)生成字母數(shù)字組合的字符串 隨機(jī)動(dòng)畫(huà)數(shù)字
本篇文章給大家分享的js隨機(jī)生成字母數(shù)字組合的字符串,js隨機(jī)生成動(dòng)畫(huà)數(shù)字,包括常用的產(chǎn)生隨機(jī)數(shù)的用法,需要的朋友可以參考下2015-09-09