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

先来看个例子

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

时间: 2024-10-03 05:51:37

原生JavaScript实现字符串长度截取的相关文章

php中英文字符串长度截取的例子

使用此方法之前,请在php.ini中开启php_mbstring.dll扩展,将extension前面的;分号去掉即可 很多截取中文字符串的方法,大多不能实现按中文个数来截取所要的字符, 以下代码可以实现:  代码如下 复制代码 <?php mb_internal_encoding('UTF-8'); $str = "中文测试chineseTest"; header('content-type:text/html; charset=UTF-8'); echo mb_strlen(

EasyUI DataGrid 时间格式化、字符串长度截取

显示效果: 日期:2016-01-01 时间:2016-01-01 11:11 标题:标题名称...   页面: <table id="tbList" style="height: 340px;" striped="true" rownumbers="true" iconcls="icon-edit" nowrap="false" idfield="Id" ur

分享10个原生JavaScript技巧_javascript技巧

1.实现字符串长度截取 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 =

JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)_javascript技巧

js判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个) 文本输入时,由于数据库表字段长度限制会导致提交失败,因此想到了此方法验证. 废话不多说上代码: <html> <head> <title>js判断输入字符串长度(汉字算两个字符,字母数字算一个)</title> <style type="text/css"> .pbt { margin-bottom: 10px; } .ie6 .pbt .ftid a, .ie

js如何判断输入字符串长度_javascript技巧

js判断输入字符串长度(汉字算两个字符,字母数字算一个) 文本输入时,由于数据库表字段长度限制会导致提交失败,因此想到了此方法验证. 废话不多说上代码: <html> <head> <title>js判断输入字符串长度(汉字算两个字符,字母数字算一个)</title> <style type="text/css"> .pbt { margin-bottom: 10px; } .ie6 .pbt .ftid a, .ie7 .p

javascript 高效按字节截取字符串

做为一个前端开发人员在网页展示中经常会碰到,标题过长,需要截取字符串,用CSS的实现的话各种兼容问题,各种坑. 让后台程序截一下,又各种推托,让后台按字节截一下更是和要了后台老命一样,最后可能只会安字符长度给你截一下,最后不好看,对不齐,还是回头整CSS.调兼容: 有以上有感触的前端同学默默点个赞吧.   最近接触一个项目,后台只提供接口(json),所有页面的数据渲染,数据绑定都都交给了前端.终于,不考虑SEO,页面所有的主动权到偶的手中了,不经意间就碰到字节截取老问题了. 网络上流传一个Ja

php截取字符串长度函数详解

常用的字符处理函数  代码如下 复制代码 strstr(string,string) = strchr(,) //从前面第一次出现某个字符串的地方截取到最后 strrchr(string,string) //从某个字符串从最后出现的位置截取到结尾 strpos(string,string[,int]) //某个字符串第一次出现的位置 strrpos(string,string) //某个字符串最后一次出现的位置 substr(string,int[,int]) //从指定位置开始截取字符串,可以

Js单行溢出自动截取字符串长度,添加省略号

javaScript字符串处理函数,根据定义的长度截取字符串,超出部分裁掉追加--,很多时候网页上显示的内容需要缩成"..."该方法用于处理字符串显示固定长度,超长部分用"..."代替:  代码如下 复制代码 /**参数说明:  * 根据长度截取先使用字符串,超长部分追加-  * str 对象字符串  * len 目标字节长度  * 返回值: 处理结果字符串  */ function cutString(str, len) {  //length属性读出来的汉字长度

JavaScript如何判断字符串长度(英文占1个字符,中文汉字占2个字符)

//计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: String.prototype.gblen = function() { var len = 0; for (var i=0; i<this.length; i++) { if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) { len += 2; } else { len ++; } } return len; } 方法二: function strlen(str){