zoukankan      html  css  js  c++  java
  • 解决页面换行因标点符号不能出现在每一行的开头,导致提前换行,中间出现空隙的问题

    只能处理比较短的文字。可以先把字符串按每一行的长度截取下来,再到行首加一个空白字符,这样就不会因为标点符号在前面而强制换行了,因为行首都有一个空白字符,而空白字符是可以当行首的。

    下面贴一下我用的截取字符串的方法

    function cutStr(str,L){
         var result = '',
             strlen = str.length, // 字符串长度
             chrlen = str.replace(/[^x00-xff]/g,'**').length; // 字节长度
    
         if(chrlen<=L){return str;}
    
         for(var i=0,j=0;i<strlen;i++){
             var chr = str.charAt(i);
             if(/[x00-xff]/.test(chr)){
                 j++; // ascii码为0-255,一个字符就是一个字节的长度
             }else{
                 j+=2; // ascii码为0-255以外,一个字符就是两个字节的长度
             }
             if(j<=L){ // 当加上当前字符以后,如果总字节长度小于等于L,则将当前字符真实的+在result后
                 result += chr;
             }else{ // 反之则说明result已经是不拆分字符的情况下最接近L的值了,直接返回
                 return result;
             }
         }
     }
    

     也就不依赖自动换行了,而是直接向测出一行要多长,直接自己先截取字符串,后面在每个直接截取字符串的前面加一个空格,空格是可以用于开头的,这样就不会因为标点不好不能出现在开头而提前换行了

    世间种种的诱惑,不惊不扰我清梦
  • 相关阅读:
    动态规划之最大子序和(53)
    退出系统
    请维护容差码的容差限制-OMR6
    SAP561该物料不可能有库存记帐
    虚拟机锁定文件失败,disk启动失败
    该物料不可能有库存记账
    其他收货入库
    有关业务 事件类型wa 在 的号码范围不存在
    给供应商付款
    T169V表目:不存在
  • 原文地址:https://www.cnblogs.com/javalisong/p/11697025.html
Copyright © 2011-2022 走看看