需求案例
当我们在页面中写一个<input>框时,想要限制输入的内容只能为英文和数字,其它内容均不能输入,该如何实现。
分析
这种input框限制输入的需求,大都是由正则表达式来完成。
不过,网上搜一下很多方法都是通过onkeyup指定方法里进行文本替换,相当于输入一个字符调一次方法,效率不高,并且网上按关键字搜出的博客大都雷同,很多正则表达式试过都没效果,哭(┬_┬),只能自己想其它办法。
还好,HTML5里支持oninput,能很简洁方便地解决这个问题。亲测,IE、谷歌和火狐都可以很好地支持。
实现方法
1. 限制只能输入英文字母和数字:
<input type="text"name="username" id="username" οninput="value=value.replace(/[^a-zA-Z0-9]+$/,'')">
2. 加上长度限制,输入字符长度不超过20:
<input type="text"name="username" id="username" οninput="value=value.replace(/[^a-zA-Z0-9]+$/,'');if(value.length>20)value=value.slice(0,20)">
其它相关限制方法:
1. 只能输入中文:
<input type="text" name="username" id="username" οninput="value=value.replace(/[^\u4e00-\u9fa5]/g,'')" placeholder="只能输入中文">
2. 只能输入英文字符、数字和指定的"%"、"#"、"/"等字符
<input type="text" name="url" id="url" οninput="value=value.replace(/[^a-zA-Z0-9&=%#/]/g,'')">
本篇结束语
想要学习更多java编程技术吗?欢迎查看我的专栏《SSM整合之企业级后台管理系统》,更多交流还欢迎加入QQ群:584017112