格式化HTML字符串代码。

export function format(html){
    if(html==""||typeof html =='undefined') return "";
    let msg=html;
    msg=replaceAll(msg,"<","|<");
    msg=replaceAll(msg,">",">|");
    msg=replaceAll(msg,"\n","");
    let data=checkNullData(msg.split("|"));
    let div=[];
    let count=[];
    let fistSize=0;
    let isOver=false;
    let overCount=0;
    for(let i=0;i<data.length;i++){
        let label=data[i];
        if(label=="")continue;
        if(label.indexOf("<")>=0){
            if(label.indexOf("/")>=0){
                overCount=count[count.length-1];
                div.push(labelPage(label,overCount));
                div.push(<br/>);
                count.splice(count.length-1,1);
                isOver=true;
            }else{
                if(isOver){
                    count.push(overCount);
                    div.push(labelPage(label,overCount));
                    div.push(<br/>);
                    isOver=false;
                }else{
                    count.push(fistSize);
                    div.push(labelPage,fistSize);
                    div.push(<br/>);
                    fistSize=fistSize+2;
                }
            }
        }else{
            div.push(CN(label,fistSize+2));
            div.push(<br/>);
        }
    }
    return (
        <pre>
            <code>
                {div.map(item=>item)}
            </code>
        </pre>
    )
}
function checkNullData(data){
    let datas=[];
    for(let i=0;i<data.length;i++){
        let label=data[i];
        if(label=""||label.length<=1) continue;
        datas.push(label);
    }
    return datas;
}
function replaceAll(param,targetParam,replaceParam){
    let msg="";
    let data=param.split("");
    for(let i=0;i<data.length;i++){
        let char=data[i];
        if(char==""||char===" ")continue;
        if(char===targetParam){
            msg=msg+replaceParam;
        }else{
            msg=msg+char;
        }
    }
    return msg;
}
function labelPage(e,index){
    return (
        <span>
            <span>
                {gs(index)}
                {e.replace("<","").replace(">","")}
                {ge()}
            </span>
        </span>
    )
}
function CN(e,index){
    return (
        <span>
            <span>
                {getKongge(index).map(item=>item)}
                {e}
            </span>
        </span>
    )
}
function getKongge(e){
    let data=[];
    if(e==0)return [];
    for(let i=0;i<e;i++){
        data.push(
            <span>
                &nbsp;
            </span>
        );
    }
    return data;
}
function gs(e){
    return(
        <span>
            {getKongge(e).map(item=>item)}
            &lt;
        </span>
    )
}
function ge(){
    return (<span>&get;</span>)
}

方法有点臃肿,有大佬可以优化意见的 咱们可以交流一下 QQ:731115882

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值