input 禁止输入特殊字符的四种实现方式


Posted in Javascript onAugust 24, 2016
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">昨天项目搜索的时候报错,蛋疼的是生产库中的,看了下日志,原因是用户搜索的时候输入了特殊字符,没办法最快捷的办法是直接把用户输入的数据进行筛选,去掉特殊字符</span>

有些特殊字符传入到后台是会产生错误的 有可能会sql注入,所以从根本上拦截

下面一起探讨下input禁止输入特殊字符的方式:

方式一:拿到value值以后 在你传递之前处理

function stripscript(value) {
var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]") 
var rs = ""; 
for (var i = 0; i < value.length; i++) {
rs = rs+s.substr(i, 1).replace(pattern, ''); 
} 
return rs;
}

直接调用这个函数即可 。

方式二:从最根本上也就是提示用户输入不了特殊字符

function showKeyPress(evt) {
evt = (evt) ? evt : window.event
return checkSpecificKey(evt.keyCode);
}
function checkSpecificKey(keyCode) {
var specialKey = "[`~!#$^&*()=|{}':;',\\[\\].<>/?~!#¥……&*()——|{}【】‘;:”“'。,、?]‘'";//Specific Key list
var realkey = String.fromCharCode(keyCode);
var flg = false;
flg = (specialKey.indexOf(realkey) >= 0);
if (flg) {
// alert('请勿输入特殊字符: ' + realkey);
return false;
}
return true;
}
document.onkeypress = showKeyPress;

使用:在input控件上加入事件 根本没反应

这个好像有点小问题 中文状态下没反应 不知道怎么回事 所以又找了一种

方式三:onkeyup事件 拿到以后去匹配 跟方式一类似

function ValidateValue(textbox) {
var IllegalString = "[`~!#$^&*()=|{}':;',\\[\\].<>/?~!#¥……&*()——|{}【】‘;:”“'。,、?]‘'";
var textboxvalue = textbox.value;
var index = textboxvalue.length - 1;

var s = textbox.value.charAt(index);

if (IllegalString.indexOf(s) >= 0) {
s = textboxvalue.substring(0, index);
textbox.value = s;
}
}

使用: onkeyup = "ValidateValue(this)" 他会输入以后会立马消失,用户是可以看得到我输入的 只是说输入以后就没了,弊端是连续输入就不会消失了(按住不动)

接下来最牛逼的一种 中和以上方式

方式四:直接在控件上使用正在

// <input /[\W]/g,'') "/[^\d]/g,''))">
// 控制输入框只能输入文字或数字,也可以不允许输入特殊字符 这里不允许输入如下字符: (像 !@#$%^&* 等)<br>

这种方式用户可以看到输入了会立马消失 跟方式三差不多 但连续输入是有效的

下面看下js里面判断输入的字符不可为特殊字符:

一、document.onkeypress事件是当输入一个字符的时候就进行校验,校验时执行函授showKeyPress,返回true的时候可输入,false不可输入。

二、evt = (evt) ? evt : window.event,是按下键盘就产生此事件获得你键入的值(是键盘的keyCode)。

var realkey = String.fromCharCode(keyCode);
String.fromCharCode()方法是把键盘值(keyCode)转换成你真实输入的值。

三、方法specialKey.indexOf(realkey):

.indexOf()是String的方法,字符串的IndexOf()方法搜索在该字符串上是否出现了作为参数传递的字符串,如果找到字符串,则返回字符的起始位置 (0表示第一个字符,1表示第二个字符依此类推)如果说没有找到则返回 -1

四、var specialKey = "#$%\^*\'\"\+";

这里是带转义符的字符串,#、$、%、^、*、'、"、+ 这些符号是特殊符号,其中前面带\的是需要转义的。

如果要在当个文本框中加限制输入特殊符号,用<input type="text" id="name" onkeypress="showKeyPress()">

以上所述是小编给大家介绍的input 禁止输入特殊字符的四种实现方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JQuery Tips(2) 关于$()包装集你不知道的
Dec 14 Javascript
javascript 动态设置已知select的option的value值的代码
Dec 16 Javascript
返回上一页并自动刷新的JavaScript代码
Feb 19 Javascript
多个checkbox被选中时如何判断是否有自己想要的
Sep 22 Javascript
javascript实现的固定位置悬浮窗口实例
Apr 30 Javascript
跟我学习javascript的严格模式
Nov 16 Javascript
微信小程序开发之toast等弹框提示使用教程
Jun 08 Javascript
在vue中使用SockJS实现webSocket通信的过程
Aug 29 Javascript
详解ES6 Promise的生命周期和创建
Aug 18 Javascript
Vue基础配置讲解
Nov 29 Javascript
django简单的前后端分离的数据传输实例 axios
May 18 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 Vue.js
深入浅析JavaScript中的3DES
Aug 24 #Javascript
jQuery自适应轮播图插件Swiper用法示例
Aug 24 #Javascript
JavaScript lodash常见用法系列小结
Aug 24 #Javascript
EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容
Aug 24 #Javascript
JS实现获取当前URL和来源URL的方法
Aug 24 #Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
Aug 24 #Javascript
总结Javascript中的隐式类型转换
Aug 24 #Javascript
You might like
深入PHP中的HashTable结构详解
2013/06/13 PHP
解析php常用image图像函数集
2013/06/24 PHP
php curl基本操作详解
2013/07/23 PHP
PHP中exec与system用法区别分析
2014/09/22 PHP
php删除左端与右端空格的方法
2014/11/29 PHP
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
2015/03/09 Javascript
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
2015/12/25 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
jQuery之简单的表单验证实例
2016/07/07 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
2020/02/11 Javascript
vue 递归组件的简单使用示例
2021/01/14 Vue.js
Python自定义类的数组排序实现代码
2016/08/28 Python
python技能之数据导出excel的实例代码
2017/08/11 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
python线程池threadpool使用篇
2018/04/27 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
印尼旅游网站:via
2017/11/12 全球购物
委托证明的格式
2014/01/10 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
银行开户授权委托书格式
2014/10/10 职场文书
法院执行局工作总结
2015/08/11 职场文书
运动会广播稿300字
2015/08/19 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技