正则表达式
var SQLSCHECK = /(?:--)|(?:')|(\*(?:.|[\\n\\r])*?\*)|^(select|from|update|and|or|delete|insert|trancate|char|into|substr|ascii|declare|exec|count\(|master|into|drop|execute|ctxsys|chr|concat|utl_inaddr|utl_http|utl_raw)+$/ig;
方法:
function checkSql (str){
var newStr="";
if(!str || typeof str!="string")return str;
//如果存在空格,则再次循环校验
var strs = str.split(" ");
newStr = strs[0].replace(SQLSCHECK,"");
//如果存在空格则循环校验
if(str.indexOf(" ")!=-1 && strs.length>1){
for(var i=1;i<strs.length;i++){
newStr += " " + strs[i].replace(SQLSCHECK,"");
}
}
return newStr;
},
调用:
input.bind("change",function(){
var v = $(this).val();
var v2 = me.checkSql(v);
if(v !=v2){
alert("输入包含非法字符串,请重新录入!");
$(this).val(v2);
}
});