js截取字符串处理 和 js 图片切换处理

作者: siediyer 分类: vue/uniapp/bootstrap/jquery/ 发布时间: 2013-05-23 22:19

js截取方式

1、区别汉字和英文

//字符串截取
function CutString(name, maxLength) {
    if (!maxLength) {
        maxLength = 20;
    }
    if (name == null || name.length < 1) {
        return "";
    }
    var w = 0; //字符串长度,一个汉字长度为2
    var s = 0; //汉字个数
    var p = false; //判断字符串当前循环的前一个字符是否为汉字
    var b = false; //判断字符串当前循环的字符是否为汉字
    var nameSub;
    for (var i = 0; i < name.length; i++) {
        if (i > 1 && b == false) {
            p = false;
        }
        if (i > 1 && b == true) {
            p = true;
        }
        var c = name.charCodeAt(i);
        //单字节加1
        if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
            w++;
            b = false;
        } else {
            w += 2;
            s++;
            b = true;
        }
        if (w > maxLength && i <= name.length - 1) {
            if (b == true && p == true) {
                nameSub = name.substring(0, i - 2) + "...";
            }
            if (b == false && p == false) {
                nameSub = name.substring(0, i - 3) + "...";
            }
            if (b == true && p == false) {
                nameSub = name.substring(0, i - 2) + "...";
            }
            if (p == true) {
                nameSub = name.substring(0, i - 2) + "...";
            }
            break;
        }
    }
    if (w <= maxLength) {
        return name;
    }
    return nameSub;
}

2、不区分汉字和英文,只按字符个数截取

function shorten(categoryName, maxLength){
                if(!maxLength){
                    maxLength = 20;
                }
                if(categoryName==null||categoryName.length<1){
                    return "";
                }
                if(categoryName.length<maxLength){
                    return categoryName;
                }
                return categoryName.substring(0, maxLength-3)+"...";
            }

js中使用:
var exampleNameAndTitle = shorten(catexampleName,18);//截取18个字符
var exampleNameAndTitle = shorten(catexampleName);//截取20个字符

图片切换

    <SCRIPT language="JavaScript">
    <!--

    var widths=400;    //焦点图片宽
    var w=2;
    var widthss=widths+w;
    var heights=300; //焦点图片高
    var heightss=heightss+w;
    var heightt=20;
    var counts=5;      //总条数

    //img1=new Image();在这里是声明了一个图片元素的对象
    //后面是对图像的属性进行赋值或设置,如imgs.src="xxxx.jpg"是指定图片的索引地址.
    //这个代码一般用于head区,用于预加载图片,即加快图片显示.
    //只有用new Images()得到的图片IE7才认,
    //而IE6和firefox可认得imgUrl[1]="/y9q9ms7lbgbt.jpg";得到的图片

    img1=new Image();img1.src='http://www.mn-soft.com/files/2010/04/logo.png';
    url1=new Image();url1.src='http://www.mn-soft.com';

    img2=new Image();img2.src='http://www.mn-soft.com/files/2010/04/alert.png';
    url2=new Image();url2.src='http://www.mn-soft.com';

    img3=new Image();img3.src='http://www.mn-soft.com/files/2010/04/minimd5.gif';
    url3=new Image();url3.src='http://www.mn-soft.com';

    img4=new Image();img4.src='http://www.mn-soft.com/files/2010/04/interopexcel.gif';
    url4=new Image();url4.src='http://www.mn-soft.com';

    img5=new Image();img5.src='http://www.mn-soft.com/files/2010/04/miniphoto.jpg';
    url5=new Image();url5.src='http://www.mn-soft.com';

    var nn=1; //当前所显示的滚动图
    var key=0;    //标识是否为第一次开始执行
    var tt;    //标识作用

    function change_img()
    {
    if(key==0){key=1;} //如果第一次执行KEY=1,表示已经执行过一次了。
    else if(document.all)//document.all仅IE6/7认识,firefox不会执行此段内容
    {
    document.getElementById("pic").filters[0].Apply(); //将滤镜应用到对像上
    document.getElementById("pic").filters[0].Play(duration=2);  //开始转换
    document.getElementById("pic").filters[0].Transition=23;//转换效果
    }

    eval('document.getElementById("pic").src=img'+nn+'.src');     //替换图片
    eval('document.getElementById("url").href=url'+nn+'.src'); //替换URL
     //替换ALT

    for (var i=1;i<=counts;i++)
    {
        //将下面黑条上的所有链接变为未选中状态
        document.getElementById("xxjdjj"+i).className='axx';
    }
    document.getElementById("xxjdjj"+nn).className='bxx';  //将当前页面的ID设置为选中状态
    nn++;
    if(nn>counts){nn=1;}    //如果ID大于总图片数量。则从头开始循环
    tt=setTimeout('change_img()',4000);    //在4秒后重新执行change_img()方法.
    }
    function changeimg(n)//点击黑条上的链接执行的方法。
    {
    nn=n; //当前页面的ID等于传入的N值,
    window.clearInterval(tt); //清除用于循环的TT
    //重新执行change_img();但change_img()内所调用的图片ID已经在此处被修改,会从新ID处开始执行.
    change_img();
    }
    //样式表
    document.write('<mce:style><!--
    ');
    document.write('.axx{padding:1px 7px;border-left:#cccccc 1px solid;font-size:12px;}');
    document.write('a.axx:link,a.axx:visited{text-decoration:none;color:#fff;');
    document.write('line-height:12px;font:9px sans-serif;background-color:#666;}');
    document.write('a.axx:active,a.axx:hover{text-decoration:none;color:#fff;');
    document.write('line-height:12px;font:9px sans-serif;background-color:#999;}');
    document.write('.bxx{padding:1px 7px;border-left:#cccccc 1px solid;}');
    document.write('a.bxx:link,a.bxx:visited{text-decoration:none;color:#fff;');
    document.write('line-height:12px;font:9px sans-serif;background-color:#009900;}');
    document.write('a.bxx:active,a.bxx:hover{text-decoration:none;color:#fff;');
    document.write('line-height:12px;font:9px sans-serif;background-color:#ff9900;}');
    document.write('
    --></mce:style><style mce_bogus="1">');
    document.write('.axx{padding:1px 7px;border-left:#cccccc 1px solid;font-size:12px;}');
    document.write('a.axx:link,a.axx:visited{text-decoration:none;color:#fff;');
    document.write('line-height:12px;font:9px sans-serif;background-color:#666;}');
    document.write('a.axx:active,a.axx:hover{text-decoration:none;color:#fff;');
    document.write('line-height:12px;font:9px sans-serif;background-color:#999;}');
    document.write('.bxx{padding:1px 7px;border-left:#cccccc 1px solid;}');
    document.write('a.bxx:link,a.bxx:visited{text-decoration:none;color:#fff;');
    document.write('line-height:12px;font:9px sans-serif;background-color:#009900;}');
    document.write('a.bxx:active,a.bxx:hover{text-decoration:none;color:#fff;');
    document.write('line-height:12px;font:9px sans-serif;background-color:#ff9900;}');
    document.write('</style>');
    //内容部分
    document.write('<div style="width:'+widthss+'px;height:'+heights+'px;');
    document.write('overflow:hidden;text-overflow:clip;float:left;">');
    document.write('<div><a id="url" target="_blank"><img id="pic" ');
    document.write('style="border:1px #cccccc solid;');
    document.write('FILTER: progid:DXImageTransform.Microsoft.RevealTrans (duration=2,transition=23)"');
    document.write(' width='+widths+' height='+heights+' /></a></div>');
    document.write('<div style="filter:alpha(style=1,opacity=10,finishOpacity=90);');
    document.write('background: #888888;width:100%-2px;text-align:right;');
    document.write('top:-16px;position:relative;margin:1px;height:14px;');
    document.write('border:0px;padding-top:1px;z-index:4000;"><div>');

    for(var i=1;i<counts+1;i++)
    {
    document.write('<a href="javascript:changeimg('+i+');" mce_href="javascript:changeimg('+i+');" id="xxjdjj'+i+'"');
    document.write(' class="axx" target="_self">'+i+'</a>');
    }
    document.write('</div></div></div>');

    //开始执行滚动操作
    change_img();

    //-->
    </SCRIPT>

js获取字节数

var lenFor = function(str){
  var byteLen=0,len=str.length;
  if(str){
    for(var i=0; i<len; i++){
      if(str.charCodeAt(i)>255){
        byteLen += 2;
      }
      else{
        byteLen++;
      }
    }
    return byteLen;
  }
  else{
    return 0;
  }
}

//正则表达式检测字符串的字节长度:

//这个好使---用的时间竟然是for循环的两倍!!!!

function getBytesLength(str) {
  // 在GBK编码里,除了ASCII字符,其它都占两个字符宽
  return str.replace(/[^/x00-/xff]/g, 'xx').length;
}

 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

Title - Artist
0:00