正则表达式过滤关键字
// var ze = "<(\S*?) [^>]*>.*?</\1>|<.*? />";
// console.log(ze.test())
function filterKey(str) {
var patternHtml = new RegExp("<(\S*?) [^>]*>.*?</\1>|<.*? />", "i");
// console.log(patternHtml.test(str)); //输出 false
//百分号不过滤(下文去掉%)
// var pattern = /[\;(--)%+<>()\"\']/;
var pattern = /[\;+<>()\"\']/;
//双减号
var paternSub = /[-]{2}/
var flag = (!patternHtml.test(str)) && (!pattern.test(str) && (!paternSub.test(str)));
var strLower = str.toString().toLowerCase();
var hasScriptTag = strLower.includes("script") || strLower.includes("alert");
return flag && (!hasScriptTag);
}
// //过滤script alert meta等标签
// var strLower = str.toString().toLowerCase();
// var hasScriptTag = strLower.includes("script") || strLower.includes("alert");
// return flag&&hasScriptTag;
//过滤script alert onload等标签
//
// function checkIfHasScriptTag(str) {
// var strLower = str.toString().toLowerCase();
// return strLower.includes("script") || strLower.includes("alert");
// }
//script alert onload等标签
// var str = "<script></SCRIPT>";
// // var reg = /<(.*)>.*<\/\1>|<(.*) \/>/i;
// //HTML标签
function test() {
var arrStr = ["basic", "cninfo.html?s=finalpage%2F2017-09-22%2Fchinext1203994161.js","alert", "script", "<script></script>", "<meta>", "<alert>", "<h1>", "<a>", "(", ")", "<", ">", "%", "-", "--", "'", "a href=", "finalPage/2017-09-16/chinext123156.js"];
for (var idx in arrStr) {
console.log(arrStr[idx] + " : " + filterKey([arrStr[idx]]));
}
}
test();
console.log("------")
reg = new RegExp(/[-]{2}/)
console.log(reg.test("www"))
console.log(reg.test("--235"))
console.log("------")
console.log('Blue Whale'.toLocaleLowerCase().includes('blue'));
// console.log(); //输出 false
test();
console.log("------")
reg = new RegExp(/[-]{2}/)
console.log(reg.test("www"))
console.log(reg.test("--235"))
console.log("------")
console.log('Blue Whale'.toLocaleLowerCase().includes('blue'));
网友评论