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


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

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

    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;
             }
         }
     }
    

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

    世间种种的诱惑,不惊不扰我清梦
  • 相关阅读:
    基本内置类型
    多维数组
    数组
    迭代器
    标准库类型 vector
    标准库类型 string
    运算符优先级表
    类型转换
    sizeof 和逗号运算符
    位运算符
  • 原文地址:https://www.cnblogs.com/javalisong/p/11697025.html
Copyright © 2020-2023  润新知