清除html的标签和行内样式

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
    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。

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

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

    “清除html的标签和行内样式” 的相关文章

    华为OD面经2022年

    一、机试 三道代码题:100分(简单),100分(简单),200分(中等) 多刷题: 华为机试常见试题 华为机试真题详解 模拟试题&#...

    【SQL开发实战技巧】系列(二十一):数据仓库中时间类型操作(进阶)识别重叠的日期范围,按指定10分钟时间间隔汇总数据

    系列文章目录 【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事 【SQL开发实战技巧】系列(二):简单单表查询 【SQL开发实战技巧】系列(三):SQL排序的那些事 【SQL...

    枚举转char

    #define NAME(value) #value...

    php报错“ocienvcreate”如何解决 - 编程语言

    今天小编给大家分享一下php报错“ocienvcreate”如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 一、什么...

    怎么用MySQL窗口函数实现榜单排名 - 开发技术

    本篇内容主要讲解“怎么用MySQL窗口函数实现榜单排名”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用MySQL窗口函数实现榜单排名”吧!首先,先建一个测试表create table praise_...

    ZOJ 3202 Second-price Auction (模拟)

    Second-price Auction http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3202 Time Limit: 1 Second       Mem...