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



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

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

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>
)
}到此這篇關(guān)于js正則校驗特殊的不可見字符的文章就介紹到這了,更多相關(guān)js正則校驗不可見字符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Javascript校驗密碼復(fù)雜度的正則表達(dá)式
- 利用js正則表達(dá)式校驗正數(shù)、負(fù)數(shù)、和小數(shù)
- JavaScript正則表達(dá)式校驗非負(fù)整數(shù)實例
- JavaScript正則表達(dá)式校驗非零的負(fù)整數(shù)實例
- JavaScript正則表達(dá)式校驗非零的正整數(shù)實例
- JS 密碼強度校驗的正則表達(dá)式(簡單且好用)
- js正則表達(dá)式校驗指定字符串的方法
- javascript使用正則表達(dá)式實現(xiàn)注冊登入校驗
- js正則表達(dá)式簡單校驗方法
- JavaScript正則表達(dá)式實現(xiàn)注冊信息校驗功能
相關(guān)文章
關(guān)于JavaScript的面向?qū)ο蠛屠^承有利新手學(xué)習(xí)
這是一篇關(guān)于JavaScript的面向?qū)ο蠛屠^承的文章,對想學(xué)習(xí)JavaScript中面向?qū)ο蟮耐瑢W(xué)來說是很有幫助,雖然一些Javascript用戶可能永遠(yuǎn)也不需要知道原型或面向?qū)ο笳Z言的性質(zhì),但是那些來自傳統(tǒng)面向?qū)ο蟮恼Z言的開發(fā)者使用的時候會發(fā)現(xiàn)JavaScript的繼承模型非常的奇怪2013-01-01
使用腳本控制網(wǎng)頁Table的顯示隱藏(全代碼)_AX
使用腳本控制網(wǎng)頁Table的顯示隱藏(全代碼)_AX...2006-12-12

