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

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

    世间种种的诱惑,不惊不扰我清梦
  • 相关阅读:
    1、使用Xcode修改iOS项目工程名和路径名
    ios 里如何处理四舍五入的问题
    ios app 开发中ipa重新签名步骤介绍
    如何重新签名ipa文件
    最近研究xcodebuild批量打包的一些心得
    C#Timer
    插座断电提醒(测试阶段)
    C#MessageBox 自动关闭窗口
    插座继电器测试
    C# TCPListener
  • 原文地址:https://www.cnblogs.com/javalisong/p/11697025.html
Copyright © 2011-2022 走看看