一、过滤非数字和字母
在编写输入框时,经常需要对用户输入的进行过滤,只允许输入数字和字母。这样做的好处是保证输入内容的规范性,避免了一些特殊符号或汉字对系统的影响。在前端开发中,可以使用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<=57)||(keyCode>=65 && keyCode<=90)||(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}`) })
通过后台代码对数据进行检测,保证输入内容的规范性不受到网络的影响,提高了系统的安全性。