原生之罪|原生JavaScript实现字符串长度截取

时间:2020-11-30  来源:网页配色  阅读:

先来看个例子

function cutstr(str, len) {
 var temp;
 var icount = 0;
 var patrn = /[^\x00-\xff]/;
 var strre = "";
 for (var i = 0; i < str.length; i++) {
 if (icount < len - 1) {
 temp = str.substr(i, 1);
 if (patrn.exec(temp) == null) {
 icount = icount + 1
 } else {
 icount = icount + 2
 }
 strre += temp
 } else {
 break
 }
 }
 return strre
}


字符串截取的方法有slice(start,end+1),substring(start,end+1),substr(start,n)。他们之间在用法方面也有一些相同或不同。

slice(start,end+1):两个参数时,参数指截取位置,截取含头不含尾;一个参数时,默认截取到字符串结尾。参数可以为负数,负数就倒着数位置。

substring(start,end+1):两个参数时,参数指截取位置,截取含头不含尾;一个参数时,默认截取到字符串结尾。参数不可以为负数。

substr(start,n):两个参数时,第一个参数指截取起始位置,第二个参数指截取字符个数;一个参数时,默认截取到字符串结尾,第一个参数可为负数,第二个参数不可以为负数。

 

var str = "0123456789";

alert(str.substring(0));------------"0123456789"
alert(str.substring(5));------------"56789"
alert(str.substring(10));-----------""
alert(str.substring(12));-----------""
alert(str.substring(-5));-----------"0123456789"
alert(str.substring(-10));----------"0123456789"
alert(str.substring(-12));----------"0123456789"
alert(str.substring(0,5));----------"01234"
alert(str.substring(0,10));---------"0123456789"
alert(str.substring(0,12));---------"0123456789"
alert(str.substring(2,0));----------"01"
alert(str.substring(2,2));----------""
alert(str.substring(2,5));----------"234"
alert(str.substring(2,12));---------"23456789"
alert(str.substring(2,-2));---------"01"
alert(str.substring(-1,5));---------"01234"
alert(str.substring(-1,-5));--------""

alert(str.substr(0));---------------"0123456789"
alert(str.substr(5));---------------"56789"
alert(str.substr(10));--------------""
alert(str.substr(12));--------------""
alert(str.substr(-5));--------------"0123456789"
alert(str.substr(-10));-------------"0123456789"
alert(str.substr(-12));-------------"0123456789"
alert(str.substr(0,5));-------------"01234"
alert(str.substr(0,10));------------"0123456789"
alert(str.substr(0,12));------------"0123456789"
alert(str.substr(2,0));-------------""
alert(str.substr(2,2));-------------"23"
alert(str.substr(2,5));-------------"23456"
alert(str.substr(2,12));------------"23456789"
alert(str.substr(2,-2));------------""
alert(str.substr(-1,5));------------"01234"
alert(str.substr(-1,-5));-----------""

写一个例子:

     var str= "今天是星期二";

     console.log(str.slice(3,6));//截取“星期二”并打印

     console.log(str.substring(3,6));//截取“星期二”并打印

     console.log(str.substr(3,3));//截取“星期二”并打印

     但是如果只知道要在str中截取字符“星期二”,但是一下子又很难数出“星期二”到底在str的哪个位置的时候,还可以用indexOf()来获取位置,如下:

    var str= "今天是星期二";

    var i=str.indexOf("星");//获取字符关键字的位置,indexOf()方法第一个参数为要搜索的关键字,第二个参数为搜索的起始位置,如果省略第二个参数,默认起始位置为下标0。

    console.log(str.slice(i,i+4));//截取“星期二”并打印

    console.log(str.substr(i,4));//截取“星期二”并打印

    当然,要求截取某个字符串某个起始位置某个长度的字符串,还可以封装成一个函数。这样就可以反复调用啦。

function sub(str,startIndex,len){

        return str.substr(startIndex,len);

}

console.log(sub("abcd",1,2));

原生之罪|原生JavaScript实现字符串长度截取

http://m.bbyears.com/wangyezhizuo/113691.html

推荐访问:原生生物 原生之罪2
相关阅读 猜你喜欢
本类排行 本类最新