防止xss和sql注入:JS特殊字符过滤正则

function stripscript(s) 
{ 
var pattern = new RegExp("[%--`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]")        //格式 RegExp("[在中间定义特殊过滤字符]")
var rs = ""; 
for (var i = 0; i < s.length; i++) { 
 rs = rs+s.substr(i, 1).replace(pattern, ''); 
}
return rs;
}

function htmlspecialchars(str){
str = str.replace(/&/g, '&amp;');
str = str.replace(/</g, '&lt;');
str = str.replace(/>/g, '&gt;');
str = str.replace(/"/g, '&quot;');
str = str.replace(/'/g, '&#039;');
return str;
}

  

/**
* @description 方法-对单引号,双引号,斜杠,尖括号,百分号等危险字符采用转译
*/
addEscape(value) {
let arr = [
"(",
"[",
"{",
"/",
"^",
"$",
"¦",
"}",
"]",
")",
"?",
"*",
"+",
".",
"'",
'"',
"%",
];
for (let i = 0; i < arr.length; i++) {
if (value) {
if (value.indexOf(arr[i]) > -1) {
const reg = (str) =>
str.replace(/[\[\]\/\{\}\(\)\*\'\"\%\¦\+\?\.\\\^\$\|]/g, "\\$&");
value = reg(value);
}
}
}
return value;
},

posted @ 2022-10-31 13:32  星云惊蛰  阅读(830)  评论(0)    收藏  举报