/**
* 當前文件用於校驗input輸入框特殊字符與SQL關鍵字校驗
* 使用方法:1、form表單內需校驗的input添加class:check
* 2、表單提交前校驗:if (!checkResult()) {
return
}
*/
// 校驗特殊字符
function isSpecialChar(p_str) {
if (!p_str) {
return false
}
var regex = /^[^`~!@$%&*?<>/\\|=+^{}\[\]\'\"【】‘’¥——、,。;:?《》!]*$/i;
return !regex.test(p_str);
}
// 校驗SQL注入風險
function isSqlInjection(p_str) {
if(p_str){
var reg = /(\band\b)|(\bor\b)|(\bDELETE\b)|(\bUPDATE\b)|(\bINSERT\b)|(\bEXEC\b)|(\bEXECUTE\b)|(\blike\b)|(\bselect\b)|(\bset\b)|(\bcreate\b)|(\btable\b)|(\bexec\b)|(\bdeclare\b)|(\bmaster\b)|(\bbackup\b)|(\bmid\b)|(\bcount\b)|(\badd\b)|(\balter\b)|(\bdrop\b)|(\bfrom\b)|(\btruncate\b)|(\bunion\b)|(\bjoin\b)|(\script\b)|(\balert\b)|(\blink\b)/gi;
}
return reg.test(p_str)
}
layui.use([ "jquery"],function() {
var $ = layui.jquery; //元素操作
window.checkResult = function () {
var elems = $("form").find("input.check").not("readonly");
var textareaElems = $("form").find(".layui-textarea.check");
console.log(elems,textareaElems);
var arr = [{
key: 'isSpecialChar',
tips: '輸入框內含有特殊字符'
},{
key:'isSqlInjection',
tips: '輸入框內含有SQL注入風險'
}];
// input
var result = 0;
var lgh = elems.length* arr.length;
$.each(elems, function(index, elem) {
arr.forEach(function (item) {
var value = $(elem).val();
if (value) {
if (eval(item.key)(value)) {
layer.msg(item.tips,{icon:5});
result--
} else {
result++;
}
} else {
result++;
}
})
});
// 文本域
var areaLength = textareaElems.length* arr.length;
var resultArea = 0;
$.each(textareaElems, function(index, elem) {
arr.forEach(function (item) {
var value = $(elem).val();
if (value) {
if (eval(item.key)(value)) {
layer.msg(item.tips,{icon:5});
resultArea--
} else {
resultArea++;
}
} else {
resultArea++;
}
})
});
console.log('result',lgh,result,'===',resultArea,areaLength);
if (result == lgh && resultArea == areaLength) {
return true
} else {
return false
}
};
});