html特殊标签字符转义
js转化html标签 正则 过滤 危险 特殊 字符
//去掉html标签
function removeHtmlTab(tab) { return tab.replace(/<[^<>]+?>/g,'');//删除所有HTML标签 }
//只删除a标签
function delHtmlTag(str){return str.replace(/(<a .+?>)|(<\/a>)/ig,"");}
//过滤掉回车 换行字符 /n /r
function ClearBr(key) { key = key.replace(/<\/?.+?>/g,""); key = key.replace(/[\r\n]/g, ""); return key; }
//普通字符转换成转意符
function html2Escape(sHtml) { return sHtml.replace(/[<>&"]/g,function(c){return {'<':'<','>':'>','&':'&','"':'"'}[c];}); }
//转意符换成普通字符
function escape2Html(str) { var arrEntities={'lt':'<','gt':'>','nbsp':' ','amp':'&','quot':'"'}; return str.replace(/&(lt|gt|nbsp|amp|quot);/ig,function(all,t){return arrEntities[t];}); }
// 转成空格
function nbsp2Space(str) { var arrEntities = {'nbsp' : ' '}; return str.replace(/&(nbsp);/ig, function(all, t){return arrEntities[t]}) }
//回车转为br标签
function return2Br(str) { return str.replace(/\r?\n/g,"<br />"); }
//去除开头结尾换行,并将连续3次以上换行转换成2次换行
function trimBr(str) { str=str.replace(/((\s| )*\r?\n){3,}/g,"\r\n\r\n");//限制最多2次换行 str=str.replace(/^((\s| )*\r?\n)+/g,'');//清除开头换行 str=str.replace(/((\s| )*\r?\n)+$/g,'');//清除结尾换行 return str; }
// 将多个连续空格合并成一个空格
function mergeSpace(str) { str=str.replace(/(\s| )+/g,' '); return str; }
//在一段字符串中过滤筛选出图片的src地址
// var box=/src=\".*\"/ig; var str='<img alt="海底总动员2:多莉去哪儿.Finding.Dory.2016" src="http://p1.bqimg.com/2251/d7f488aa4dceb926s.png" /><br /><img alt="海底总动员2:多莉去哪儿.Finding.Dory.2016" src="http://p1.bqimg.com/2251/236f99bdede0d95fs.png" /><br />'; //console.log(box.exec(str)); // var str = "this is test string <img src=\"http:www.yanue.net/test.jpg\" width='50' > 123 and the end <img src=\"所有地址也能匹配.jpg\" /> 33! <img src=\"/uploads/attached/image/20120426/20120426225658_92565.png\" alt=\"\" />" //匹配图片(g表示匹配所有结果i表示区分大小写) var imgReg = /<img.*?(?:>|\/>)/gi; //匹配src属性 var srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i; var arr = str.match(imgReg); var pic_arr=[]; //alert('所有已成功匹配图片的数组:'+arr); for (var i = 0; i < arr.length; i++) { var src = arr[i].match(srcReg); //获取图片地址 if(src[1]){ alert('已匹配的图片地址'+(i+1)+':'+src[1]); pic_arr[i]=src[1]; } // if (src[0]) { // var t = src[0].replace(/src/i, "href"); // // alert(t); // pic_arr[i]=t // } } console.log(pic_arr);
//如果输出危险字符就返回true
function stripscript_prompt(s) { var pattern = new RegExp("[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]"); return !!pattern.exec(s); }
//直接过滤掉、并返回过滤后的字符串
function stripscript(s) { var pattern = new RegExp("[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]"); var rs = ""; for (var i = 0; i < s.length; i++) { rs = rs + s.substr(i, 1).replace(pattern, ''); } return rs; }
//input监听并判断过滤危险字符,配合上面stripscript_prompt(s)、stripscript_prompt(s)
//input监听、并且过滤 function input_listen(ele) { $.data(ele[0],'old',ele.val()); //默认为了一个元素设置了一个临时变量并获取当前值 ele.bind('input propertychange', function() { var old= $.data(ele[0],'old'); //获取临时的值 var newvalue=$(this).val(); //获取到当前值 if(old !== newvalue){ //当前值和临时值不一样时 $.data(ele[0],'old',$(this).val()); //将当前值赋值给临时值,让临时值成为最新的,如果值还是一样时什么都不变 } //console.log(old); //如果临时值变化了,虽然old获取到的是临时值,但old还是保持上一个值不变,因为是传递赋值保持着独立性 //console.log( stripscript(newvalue)+'<---' ); if(stripscript_prompt(newvalue)){ ele.val(stripscript(newvalue)); console.log(stripscript(newvalue)+'<---危险字符并过滤') //管理员帐号验证 }else{ ele.val(newvalue); console.log(newvalue+'<---没危险') } }); }
http://www.cnblogs.com/leejersey/p/4568092.html