DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> input 禁止輸入特殊字符的四種實現方式
input 禁止輸入特殊字符的四種實現方式
編輯:關於JavaScript     
<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 禁止輸入特殊字符的四種實現方式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對網站的支持!

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved