国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

input 禁止輸入特殊字符的四種實(shí)現(xiàn)方式

2019-11-20 09:09:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">昨天項(xiàng)目搜索的時(shí)候報(bào)錯(cuò),蛋疼的是生產(chǎn)庫(kù)中的,看了下日志,原因是用戶搜索的時(shí)候輸入了特殊字符,沒(méi)辦法最快捷的辦法是直接把用戶輸入的數(shù)據(jù)進(jìn)行篩選,去掉特殊字符</span>

有些特殊字符傳入到后臺(tái)是會(huì)產(chǎn)生錯(cuò)誤的 有可能會(huì)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;}

直接調(diào)用這個(gè)函數(shù)即可 。

方式二:從最根本上也就是提示用戶輸入不了特殊字符

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

使用:在input控件上加入事件 根本沒(méi)反應(yīng)

這個(gè)好像有點(diǎn)小問(wèn)題 中文狀態(tài)下沒(méi)反應(yīng) 不知道怎么回事 所以又找了一種

方式三: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)" 他會(huì)輸入以后會(huì)立馬消失,用戶是可以看得到我輸入的 只是說(shuō)輸入以后就沒(méi)了,弊端是連續(xù)輸入就不會(huì)消失了(按住不動(dòng))

接下來(lái)最牛逼的一種 中和以上方式

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

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

這種方式用戶可以看到輸入了會(huì)立馬消失 跟方式三差不多 但連續(xù)輸入是有效的

下面看下js里面判斷輸入的字符不可為特殊字符:

一、document.onkeypress事件是當(dāng)輸入一個(gè)字符的時(shí)候就進(jìn)行校驗(yàn),校驗(yàn)時(shí)執(zhí)行函授showKeyPress,返回true的時(shí)候可輸入,false不可輸入。

二、evt = (evt) ? evt : window.event,是按下鍵盤(pán)就產(chǎn)生此事件獲得你鍵入的值(是鍵盤(pán)的keyCode)。

var realkey = String.fromCharCode(keyCode);
String.fromCharCode()方法是把鍵盤(pán)值(keyCode)轉(zhuǎn)換成你真實(shí)輸入的值。

三、方法specialKey.indexOf(realkey):

.indexOf()是String的方法,字符串的IndexOf()方法搜索在該字符串上是否出現(xiàn)了作為參數(shù)傳遞的字符串,如果找到字符串,則返回字符的起始位置 (0表示第一個(gè)字符,1表示第二個(gè)字符依此類推)如果說(shuō)沒(méi)有找到則返回 -1

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

這里是帶轉(zhuǎn)義符的字符串,#、$、%、^、*、'、"、+ 這些符號(hào)是特殊符號(hào),其中前面帶/的是需要轉(zhuǎn)義的。

如果要在當(dāng)個(gè)文本框中加限制輸入特殊符號(hào),用<input type="text" id="name" onkeypress="showKeyPress()">

以上所述是小編給大家介紹的input 禁止輸入特殊字符的四種實(shí)現(xiàn)方式,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 崇义县| 凯里市| 嘉禾县| 盘山县| 青海省| 承德市| 婺源县| 宜州市| 葫芦岛市| 越西县| 墨江| 广南县| 宁津县| 盐山县| 开化县| 西昌市| 玉龙| 富川| 肃宁县| 双流县| 遵化市| 谢通门县| 比如县| 慈溪市| 阿巴嘎旗| 华坪县| 长顺县| 高安市| 吴桥县| 郯城县| 建湖县| 西乡县| 三明市| 陇南市| 滦平县| 康乐县| 石狮市| 岐山县| 无为县| 苍南县| 哈巴河县|