一、過濾非數字和字母
在編寫輸入框時,經常需要對用戶輸入的進行過濾,只允許輸入數字和字母。這樣做的好處是保證輸入內容的規範性,避免了一些特殊符號或漢字對系統的影響。在前端開發中,可以使用JavaScript中的正則表達式進行匹配。代碼示例:
const reg = /^[0-9a-zA-Z]*$/; const input = document.getElementById("input"); if(reg.test(input.value)){ //輸入內容規範 }else{ //輸入內容非法,進行提示 }
有了上面的代碼示例,輸入框將只允許輸入數字和大小寫字母,其餘字元將被過濾掉。
二、按鍵響應
在實際開發中,用戶的輸入可能不僅僅是在輸入框中輸入,還可能會使用鍵盤的方向鍵、刪除鍵等。這時候需要對按鍵進行響應,保證輸入框只接收數字和字母。代碼示例:
const input = document.getElementById("input"); input.addEventListener('keydown',(event)=>{ const keyCode = event.keyCode; //只允許輸入數字和字母 if(!((keyCode>=48 && keyCode=65 && keyCode=96 && keyCode<=105))){ event.preventDefault(); } })
通過監聽keydown事件,過濾掉僅允許輸入數字和字母以外的按鍵,例如方向鍵、刪除鍵等,保證輸入框只接收數字和字母。
三、移動端處理
在移動端中,輸入框的輸入方式和PC端有所不同,用戶使用虛擬鍵盤進行輸入。需要對虛擬鍵盤進行定製,只顯示數字和字母。可以通過設置input元素的type為text,再設置pattern為正則表達式,來實現只允許輸入數字和字母。代碼示例:
<input type="text" pattern="[0-9a-zA-Z]*" placeholder="請輸入數字和字母">
通過設置input的type為text,pattern為正則表達式,只允許輸入數字和字母,保證了移動端輸入框輸入內容規範性。
四、前後台數據驗證
在前後台交互中,輸入框只接收數字和字母的舉措是前端的實現,但是網路不安全,前端數據驗證是不夠的,還需要後台進行二次檢驗。
//後台代碼示例 const express = require('express'); const app = express(); const port = 3000; const bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); app.post('/userinfo',(req,res)=>{ const reg = /^[0-9a-zA-Z]*$/; if(reg.test(req.body.username) && reg.test(req.body.password)){ //數據合法,對數據進行處理 }else{ //數據非法,返回錯誤信息 res.json({code:-1,msg:"輸入內容非法"}); } }) app.listen(port,()=>{ console.log(`Example app listening at http://localhost:${port}`) })
通過後台代碼對數據進行檢測,保證輸入內容的規範性不受到網路的影響,提高了系統的安全性。
原創文章,作者:ZXTU,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/148439.html