function shieldStyle(){
this._styleStartArr=["<span","<p","<strong"];
}
shieldStyle.prototype.show=function (str,text){
var newStr=str.replace(/^/g);
newStr=newStr.replace(/undefined/g,"");
var headStr=str.indexOf("<")==-1?"":newStr.substring(0,str.indexOf("<")); //var regular=/+this._styleArr[1]+/g;
var otherStr="";
otherStr=newStr.replace(/<\/p>/g,"");
otherStr=otherStr.replace(/<p>/g,"");
otherStr=otherStr.replace(/<strong>/g,"");
otherStr=otherStr.replace(/<\/strong>/g,"");
otherStr=otherStr.replace(/<span>/g,"");
otherStr=otherStr.replace(/<\/span>/g,"");
otherStr=otherStr.replace(/&nbsp;/g,"");
otherStr=otherStr.replace(/\r\n/g,"");
otherStr=otherStr.replace(/undefined/g,"");
otherStr=this.checkSign(otherStr,0,text);
}
shieldStyle.prototype.checkSign=function (str,id,text){ var index=str.indexOf(this._styleStartArr[id]);
var newStr=str;
if(index>-1){
var startStr=str.substring(0,index);
var end;
if(startStr==""){
end=str.indexOf(">")
}else{
var endStr=str.substring(index,str.length);
end=endStr.indexOf(">")
} var style=str.substring(index,index+end+1); var newindex=str.indexOf(style)
newStr=startStr+str.substring(str.indexOf(style)+style.length,str.length);
}
var isEnd=true;
for(var i=0;i<this._styleStartArr.length;i++){
if(newStr.indexOf(this._styleStartArr[i])>-1){
isEnd=false;
break;
}
}
if(!isEnd){
this.checkSign(newStr,i,text);
}else{
text.innerHTML=newStr;
}
}

正则表达式的语法比较烦,曾经很认真的看过一遍,过后就忘记了,总之这里的g是模式匹配符的一种。

g代表匹配所有相符的字符串,否则它只找到第一个就不找了。

i:ignorCase忽略大小写
m:mutiple允许多行匹配
g:globle进行全局匹配,指匹配到目标串的结尾
gi:globle进行全局匹配并且忽略大小写
s:如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。

x:如果设定了此修正符,模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的 # 以及下一个换行符之间的所有字符,包括两头,也都被忽略。 

e:如果设定了此修正符,preg_replace() 在替换字符串中对逆向引用作正常的替换

style=“”则需要截取字符串,

用substring截取从0到< 的部分放在headStr。

再截取<以后的部分,把他们拼接起来,就清除了多余的部分。

清除html的标签和行内样式的更多相关文章

  1. HTML+CSS教程(四)选择器(id选择器,类选择器,标签选择器,子代选择器,后代选择器,组选择器,伪类选择器)/css引入页面的形式(行内样式、内嵌样式、外联样式)

    一.回顾内容 前端的三大组成(三大模块)    HTMl(超文本标记语言) 结构层    css(层叠样式表) 表现层:用来美化HTML结构    JS(Java script)(脚本语言) 行为层: ...

  2. CSS 行内样式 页内样式 外部样式

    行内标签: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...

  3. HTML开发之(块级标签,行内标签,行内块标签)

    显示模式的特性: 主要分为两大类: 块级元素:独占一行,对宽高的属性值生效:如果不给宽度,块级元素就默认为浏览器的宽度,即就是100%宽: 行内元素:可以多个标签存在一行,对宽高属性值不生效,完全靠内 ...

  4. JavaScript的DOM_操作行内样式

    一.检测浏览器是否支持css CSS 作为(X)HTML 的辅助,可以增强页面的显示效果.但不是每个浏览器都能支持最新的 CSS 能力.CSS 的能力和 DOM 级别密切相关,所以我们有必要检测当前浏 ...

  5. HTML基础知识(块级标签,行内标签,行内块标签)

    块级元素:独占一行,对宽高的属性值生效:如果不给宽度,块级元素就默认为浏览器的宽度,即就是100%宽: 行内元素:可以多个标签存在一行,对宽高属性值不生效,完全靠内容撑开宽高! 其中还有一种结合两种模 ...

  6. CSS(3)---块级标签、行内标签、行内块标签

    块级标签.行内标签.行内块标签 html中的标签元素三种类型:块级标签.行内标签.行内块标签. 一.概述 1.块级标签 概念 每个块元素通常都会独自占据一整行或多整行,可以对其设置宽度.高度.对齐等属 ...

  7. JS:操作样式表1:行内样式

    //访问元素样式1, stye属性只对行内样式有用 var box = document.getElementById("box"); // alert(box.style.col ...

  8. css块级标签,行内标签,行内块标签的转换(2)

            css块级标签,行内标签,行内块标签的转换 版权声明 本文原创作者:雨点的名字 作者博客地址:https://home.cnblogs.com/u/qdhxhz/ 在基础1中,我详细讲 ...

  9. important覆盖行内样式

    优先级,外部样式<内部样式<行内样式,后台富文本编辑器编辑的正文显示在前台时可用!important覆盖其行内样式 今天的问题,font-family:"思源黑体 CN!impo ...

随机推荐

  1. 【UVA】11732 - strcmp() Anyone?

    一開始不知道这样的一维建树方法. 每次一层用一个链指向下一层最左边的结点,之后每一层用一个链表串联全部的结点,这样就建树成功了. 14328524 11732 option=com_onlinejud ...

  2. Android 颜色渲染(三) Shader颜色渲染

    版权声明:本文为博主原创文章,未经博主允许不得转载. 相信看过在上一篇中提到的三篇文章后,大家已经对颜色处理方面有更深的体会. 之前讲到颜色渐变的效果, 具体怎么做呢,这就需要应用颜色渲染. 首先要介 ...

  3. python模拟登陆之下载

    好长时间没有更新博客了,哈哈. 今天公司给了这么一个需求,现在我们需要去淘宝获取上一天的订单号,然后再根据订单号去另一个接口去获取订单详情,然后再给我展示到web! 中间涉及到的技术点有: 模拟登陆 ...

  4. Linux Device Driver 3th 中的一些坑

    linux设备驱动第三版由于年代比较久远,有很多东西已过时.开一贴记录自己发现的一些问题. 4.3.1.4. seq_file接口 此节最后提到用 struct proc_dir_entry* cre ...

  5. C# WinForm获取程序所在路径方法

    多个获取WinForm程序所在文件夹路径的方法,收藏备忘. 1)获取当前进程的完整路径,包含文件名(进程名). 代码:string str =this.GetType().Assembly.Locat ...

  6. try{}catch(){}//根据异常信息使用不同的方法要怎么实现

    try{ }catch(Exception e){ if(e.getMessage().contains("123456798")) //使用e.getMessage().cont ...

  7. log4Net配置详解

    <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSe ...

  8. eclipse中更改默认编码格式

    更改过程如下: (1)window->preferences->general->content Types, 选中java class file修改default encoding ...

  9. asp.net发布和更新网站

    我们一般使用ftp软件来更新网站,而更新之前的一个步骤就是发布项目.以下将讲解asp.net mvc如何发布网站. 打开项目 右键点击项目,选择“发布” 第一次发布前,需要配置一下发布配置文件:点击” ...

  10. Visual Studio2010 安装msdn

    1.注册VS2010 断网(不要冒险)->运行Microsoft Visual Studio 2010->帮助->注册产品->YCFHQ-9DWCY-DKV88-T2TMH-G ...