一、過濾非數字和字母
在編寫輸入框時,經常需要對用戶輸入的進行過濾,只允許輸入數字和字母。這樣做的好處是保證輸入內容的規範性,避免了一些特殊符號或漢字對系統的影響。在前端開發中,可以使用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-hant/n/148439.html
微信掃一掃
支付寶掃一掃